UI Components

Theme tokens

Every token the kit defines: the CSS custom property a style reads, and its value in each mode of the theme the kit ships. A theme changes these values; a product never overrides a component's styles.

The values are the Default theme's. A value that does not change between modes shows in both columns.

Colors

TokenLightDark
--nol-window#F8F8F8#181818
--nol-panel#FFFFFF#1F1F1F
--nol-raised#F8F8F8#2B2B2B
--nol-code#F8F8F8#181818
--nol-code-header#F2F2F2#2B2B2B
--nol-code-header-raised#F2F2F2#343434
--nol-attachment#F2F2F2#2B2B2B
--nol-code-comment#008000#6A9955
--nol-code-keyword#0000FF#569CD6
--nol-code-control#AF00DB#C586C0
--nol-code-string#A31515#CE9178
--nol-code-number#098154#B5CEA8
--nol-code-type#247A93#4EC9B0
--nol-code-function#795E26#DCDCAA
--nol-code-variable#001080#9CDCFE
--nol-code-regex#811F3F#D16969
--nol-code-meta#800000#D7BA7D
--nol-text-selection#ADD6FF#264F78
--nol-text-selection-foreground#3B3B3B#CCCCCC
--nol-terminal-background#FFFFFF#1F1F1F
--nol-terminal-foreground#3B3B3B#CCCCCC
--nol-terminal-cursor#005FB8#CCCCCC
--nol-terminal-selection#ADD6FF#264F78
--nol-terminal-selection-foreground#3B3B3B#CCCCCC
--nol-terminal-ansi-black#000000#000000
--nol-terminal-ansi-red#CD3131#CD3131
--nol-terminal-ansi-green#107C10#0DBC79
--nol-terminal-ansi-yellow#949800#E5E510
--nol-terminal-ansi-blue#0451A5#2472C8
--nol-terminal-ansi-magenta#BC05BC#BC3FBC
--nol-terminal-ansi-cyan#0598BC#11A8CD
--nol-terminal-ansi-white#555555#E5E5E5
--nol-terminal-ansi-bright-black#666666#666666
--nol-terminal-ansi-bright-red#F14C4C#F14C4C
--nol-terminal-ansi-bright-green#14CE14#23D18B
--nol-terminal-ansi-bright-yellow#B5BA00#F5F543
--nol-terminal-ansi-bright-blue#3B8EEA#3B8EEA
--nol-terminal-ansi-bright-magenta#D670D6#D670D6
--nol-terminal-ansi-bright-cyan#29B8DB#29B8DB
--nol-terminal-ansi-bright-white#A5A5A5#E5E5E5
--nol-text#3B3B3B#BDBDBD
--nol-text-strong#3B3B3B#CCCCCC
--nol-text-muted#616161#9D9D9D
--nol-icon-color#3B3B3B#CCCCCC
--nol-card-border#E5E5E5#252525
--nol-border#E5E5E5#2B2B2B
--nol-accent#005FB8#4DAAFC
--nol-sash-active#005FB8#4DAAFC
--nol-link#005FB8#4DAAFC
--nol-mention#005FB8#4DAAFC
--nol-hover#F2F2F2#2C2C2C
--nol-selected#E6E6E6#383838
--nol-toolbar-hover#B8B8B850#5A5D5E50
--nol-scrollbar#64646466#79797966
--nol-scrollbar-active#646464B3#646464B3
--nol-title-bar#F8F8F8#181818
--nol-title-bar-text#1E1E1E#CCCCCC
--nol-input#FFFFFF#313131
--nol-input-border#858585#858585
--nol-input-text#3B3B3B#CCCCCC
--nol-placeholder#767676#9A9A9A
--nol-button#005FB8#0078D4
--nol-button-text#FFFFFF#FFFFFF
--nol-button-hover#0258A8#026EC1
--nol-button-secondary#E5E5E5#00000000
--nol-button-secondary-text#3B3B3B#CCCCCC
--nol-button-secondary-hover#CCCCCC#2B2B2B
--nol-button-danger-text#FFFFFF#1F1F1F
--nol-dropdown#FFFFFF#313131
--nol-dropdown-border#858585#858585
--nol-dropdown-list#FFFFFF#1F1F1F
--nol-list-active#D4D4D4#4A4A4A
--nol-list-active-text#000000#FFFFFF
--nol-list-highlight#0066BF#2AAAFF
--nol-button-border#0000001A#FFFFFF1A
--nol-setting-title#1F1F1F#FFFFFF
--nol-hover-widget#F8F8F8#202020
--nol-hover-widget-border#3B3B3B33#CCCCCC33
--nol-quick-input#F8F8F8#222222
--nol-quick-input-key-border#CECECE#454545
--nol-menu-separator#3B3B3B33#454545
--nol-widget-shadow#00000029#0000005C
--nol-widget-border#E5E5E5#313131
--nol-dialog#F8F8F8#202020
--nol-menu#FFFFFF#1F1F1F
--nol-menu-text#3B3B3B#CCCCCC
--nol-menu-border#CECECE#454545
--nol-checkbox#F8F8F8#313131
--nol-checkbox-border#858585#858585
--nol-switch-knob#FFFFFF#1F1F1F
--nol-badge#CCCCCC#616161
--nol-badge-text#3B3B3B#F8F8F8
--nol-progress#005FB8#4DAAFC
--nol-notification#FFFFFF#1F1F1F
--nol-notification-border#E5E5E5#454545
--nol-error#A1260D#F48771
--nol-removed#A1260D#F48771
--nol-added#3F6212#B5CEA8
--nol-status-ok#1A7F37#3FB950
--nol-status-failed#CF222E#F85149
--nol-warning#8A5800#E3A33B
--nol-docking-preview#E6E6E6#383838
--nol-docking-preview-border#005FB8#4DAAFC
--nol-author-1#2F78CA#76A7DF
--nol-author-2#1F8582#2AB5B0
--nol-author-3#20882E#2CBB3F
--nol-author-4#977023#CF9A30
--nol-author-5#B75E2B#DB9267
--nol-author-6#D3424C#E48A90
--nol-author-7#CF31A5#E283C9
--nol-author-8#9358D8#B992E5
--nol-avatar-default#DBEAFE#1E3A5F
--nol-avatar-default-text#1E40AF#BFDBFE
--nol-avatar-teal#CCFBF1#134E4A
--nol-avatar-teal-text#115E59#99F6E4
--nol-avatar-green#DCFCE7#14532D
--nol-avatar-green-text#166534#BBF7D0
--nol-avatar-lime#ECFCCB#365314
--nol-avatar-lime-text#3F6212#D9F99D
--nol-avatar-amber#FEF3C7#78350F
--nol-avatar-amber-text#92400E#FDE68A
--nol-avatar-orange#FFEDD5#7C2D12
--nol-avatar-orange-text#9A3412#FED7AA
--nol-avatar-red#FEE2E2#7F1D1D
--nol-avatar-red-text#991B1B#FECACA
--nol-avatar-rose#FFE4E6#881337
--nol-avatar-rose-text#9F1239#FECDD3
--nol-avatar-pink#FCE7F3#831843
--nol-avatar-pink-text#9D174D#FBCFE8
--nol-avatar-purple#F3E8FF#581C87
--nol-avatar-purple-text#6B21A8#E9D5FF
--nol-avatar-violet#EDE9FE#4C1D95
--nol-avatar-violet-text#5B21B6#DDD6FE
--nol-avatar-indigo#E0E7FF#312E81
--nol-avatar-indigo-text#3730A3#C7D2FE
--nol-avatar-cyan#CFFAFE#164E63
--nol-avatar-cyan-text#155E75#A5F3FC
--nol-backdroprgb(0 0 0 / 50%)rgb(0 0 0 / 50%)
--nol-overlayrgb(0 0 0 / 70%)rgb(0 0 0 / 70%)
--nol-overlay-text#FFFFFF#FFFFFF
--nol-overlay-control#FFFFFF1A#FFFFFF1A
--nol-overlay-control-hover#FFFFFF14#FFFFFF14
--nol-overlay-control-text#EEEEEE#EEEEEE

Text roles and fonts

TokenLightDark
--nol-font-sans"Noldova Sans", system-ui, "Segoe UI", Roboto, sans-serif"Noldova Sans", system-ui, "Segoe UI", Roboto, sans-serif
--nol-font-mono"Noldova Mono", ui-monospace, "Cascadia Mono", Consolas, monospace"Noldova Mono", ui-monospace, "Cascadia Mono", Consolas, monospace
--nol-text-panel0.8125rem0.8125rem
--nol-text-message0.8125rem0.8125rem
--nol-text-code0.75rem0.75rem
--nol-text-terminal0.8125rem0.8125rem
--nol-text-labelmax(12px, calc(var(--nol-text-panel) - 0.0625rem))max(12px, calc(var(--nol-text-panel) - 0.0625rem))
--nol-text-smallmax(12px, 0.75rem)max(12px, 0.75rem)
--nol-text-titlecalc(var(--nol-text-panel) + 0.125rem)calc(var(--nol-text-panel) + 0.125rem)
--nol-text-headingcalc(var(--nol-text-panel) * 2)calc(var(--nol-text-panel) * 2)
--nol-text-reference-titlevar(--nol-text-message)var(--nol-text-message)
--nol-text-avatar-byline0.625rem0.625rem
--nol-line-panelmax(1.125rem, calc(var(--nol-text-panel) + 0.3125rem))max(1.125rem, calc(var(--nol-text-panel) + 0.3125rem))
--nol-line-titlecalc(var(--nol-text-title) + 0.3125rem)calc(var(--nol-text-title) + 0.3125rem)
--nol-line-labelcalc(var(--nol-text-label) + 0.25rem)calc(var(--nol-text-label) + 0.25rem)
--nol-line-tooltipcalc(var(--nol-text-label) + 0.4375rem)calc(var(--nol-text-label) + 0.4375rem)
--nol-line-headingcalc(var(--nol-text-heading) * 1.25)calc(var(--nol-text-heading) * 1.25)
--nol-line-message1.61.6
--nol-line-code1.51.5
--nol-line-terminal1.31.3
--nol-line-reference-title1.451.45
--nol-weight-emphasis500500
--nol-weight-strong600600
--nol-letter-spacing-caps0.05em0.05em

Spacing

TokenLightDark
--nol-space-10.25rem0.25rem
--nol-space-20.5rem0.5rem
--nol-space-30.75rem0.75rem
--nol-space-41rem1rem
--nol-space-61.5rem1.5rem

Radius

TokenLightDark
--nol-radius-hover0.1875rem0.1875rem
--nol-radius-small0.25rem0.25rem
--nol-radius-medium0.375rem0.375rem
--nol-radius-large0.5rem0.5rem

Shadows

TokenLightDark
--nol-shadow-large0 0 0.75rem rgb(0 0 0 / 14%)0 0 0.75rem rgb(0 0 0 / 14%)
--nol-shadow-xlarge0 0 1.25rem rgb(0 0 0 / 15%)0 0 1.25rem rgb(0 0 0 / 15%)

Metrics

TokenLightDark
--nol-pill-padding0.375rem0.375rem
--nol-border-width1px1px
--nol-panel-card-gap0.25rem0.25rem
--nol-panel-card-margin0.25rem0.25rem
--nol-dock-left-width26rem26rem
--nol-dock-right-width25rem25rem
--nol-dock-bottom-height16.25rem16.25rem
--nol-dock-min-size10rem10rem
--nol-dock-strip-size2.75rem2.75rem
--nol-document-min-size13.75rem13.75rem
--nol-group-min-width10rem10rem
--nol-group-min-height6.25rem6.25rem
--nol-tab-height2rem2rem
--nol-tab-pill1.5rem1.5rem
--nol-tab-inset0.125rem0.125rem
--nol-tab-max-width16rem16rem
--nol-scrollbar-size0.375rem0.375rem
--nol-tab-action-slot1.5rem1.5rem
--nol-tab-close1.25rem1.25rem
--nol-tab-image0.875rem0.875rem
--nol-tab-image-radius0.1875rem0.1875rem
--nol-tab-part-gap0.375rem0.375rem
--nol-tab-spinner0.75rem0.75rem
--nol-tab-spinner-stroke0.09375rem0.09375rem
--nol-tab-underline0.125rem0.125rem
--nol-icon1rem1rem
--nol-icon-button1.375rem1.375rem
--nol-sashvar(--nol-panel-card-gap)var(--nol-panel-card-gap)
--nol-sash-grip0.125rem0.125rem
--nol-sash-grip-spacing0.3125rem0.3125rem
--nol-docking-guide2.5rem2.5rem
--nol-docking-guide-icon1.5rem1.5rem
--nol-docking-plate-gap0.125rem0.125rem
--nol-view-badge1rem1rem
--nol-view-badge-dot0.5rem0.5rem
--nol-view-badge-padding0.25rem0.25rem
--nol-view-badge-text0.625rem0.625rem
--nol-file-badge-text0.5625rem0.5625rem
--nol-file-badge-glyph0.75rem0.75rem
--nol-chip1.25rem1.25rem
--nol-chip-padding0.375rem0.375rem
--nol-chip-dot0.375rem0.375rem
--nol-spinner1rem1rem
--nol-spinner-ring0.75rem0.75rem
--nol-spinner-strokecalc(var(--nol-border-width) * 2)calc(var(--nol-border-width) * 2)
--nol-meter4rem4rem
--nol-meter-height0.25rem0.25rem
--nol-meter-gap0.5rem0.5rem
--nol-avatar1.75rem1.75rem
--nol-avatar-small1.5rem1.5rem
--nol-avatar-byline1.25rem1.25rem
--nol-choice-pill1.375rem1.375rem
--nol-choice-pill-gap0.25rem0.25rem
--nol-menu-padding0.25rem0.25rem
--nol-menu-label-padding0.5rem 0.75rem 0.25rem0.5rem 0.75rem 0.25rem
--nol-menu-item-height1.625rem1.625rem
--nol-menu-item-inset0.25rem0.25rem
--nol-menu-item-padding0.5rem0.5rem
--nol-menu-trail-gap2rem2rem
--nol-band-gapvar(--nol-sash)var(--nol-sash)
--nol-toolbar-button1.5rem1.5rem
--nol-toolbar-gap0.5rem0.5rem
--nol-toolbar-grip-gap0.2rem0.2rem
--nol-menu-separator-spacing0.3125rem0.3125rem
--nol-tooltip-width43.75rem43.75rem
--nol-tooltip-padding0.125rem 0.5rem0.125rem 0.5rem
--nol-tooltip-description-width18rem18rem
--nol-tooltip-description-padding0.5rem 0.75rem0.5rem 0.75rem
--nol-popover-width27.5rem27.5rem
--nol-dialog-width27.5rem27.5rem
--nol-dialog-title-padding1.375rem 2rem 0.75rem 1.25rem1.375rem 2rem 0.75rem 1.25rem
--nol-dialog-body-padding0 1.25rem0 1.25rem
--nol-dialog-actions-padding1.25rem 1.25rem 0.5rem1.25rem 1.25rem 0.5rem
--nol-dialog-large-width80vw80vw
--nol-dialog-large-height80vh80vh
--nol-dialog-large-min-width30rem30rem
--nol-dialog-large-min-height20rem20rem
--nol-dialog-large-header-padding0.5rem 1.25rem0.5rem 1.25rem
--nol-quick-input-width40rem40rem
--nol-quick-input-margin0.25rem0.25rem
--nol-quick-input-padding0.375rem0.375rem
--nol-quick-input-gap0.375rem0.375rem
--nol-quick-input-field-height1.875rem1.875rem
--nol-quick-input-field-padding0.5rem0.5rem
--nol-quick-input-glyph0.875rem0.875rem
--nol-quick-input-row-height1.75rem1.75rem
--nol-quick-input-row-padding0.625rem0.625rem
--nol-quick-input-key-text0.6875rem0.6875rem
--nol-quick-input-list-height60vh60vh
--nol-quick-input-label-linenormalnormal
--nol-mention-list-height16rem16rem
--nol-mention-row-height2.5rem2.5rem
--nol-field-height1.625rem1.625rem
--nol-field-padding0.375rem0.375rem
--nol-window-row-heightcalc(var(--nol-icon-button-target) + 2 * var(--nol-band-gap))calc(var(--nol-icon-button-target) + 2 * var(--nol-band-gap))
--nol-message-collapsed-height24rem24rem
--nol-message-picture-height24rem24rem
--nol-status-bar-height1.5rem1.5rem
--nol-status-bar-item-height1.25rem1.25rem
--nol-status-bar-item-gap0.25rem0.25rem
--nol-button-height1.625rem1.625rem
--nol-button-compact-heightvar(--nol-icon-button-target)var(--nol-icon-button-target)
--nol-button-padding0.5rem0.5rem
--nol-checkbox-size1.125rem1.125rem
--nol-switch-width1.75rem1.75rem
--nol-switch-height1rem1rem
--nol-switch-knob-size0.75rem0.75rem
--nol-toast-width22.5rem22.5rem
--nol-text-field-width12.5rem12.5rem
--nol-select-width20rem20rem
--nol-number-field-width5rem5rem
--nol-setting-marker0.625rem0.625rem
--nol-tree-row-height1.625rem1.625rem
--nol-tree-indent1.75rem1.75rem
--nol-row-gapcalc(2 * var(--nol-tab-inset))calc(2 * var(--nol-tab-inset))
--nol-section-header-height1.75rem1.75rem
--nol-content-padding-inlinecalc(3 * var(--nol-tab-inset) + var(--nol-pill-padding))calc(3 * var(--nol-tab-inset) + var(--nol-pill-padding))
--nol-document-padding-block1rem1rem
--nol-view-padding-block0.5rem0.5rem
--nol-settings-pages-width12.5rem12.5rem
--nol-settings-content-width50rem50rem
--nol-modules-list-width20rem20rem
--nol-modules-detail-width45rem45rem
--nol-dropdown-padding0.25rem0.25rem
--nol-dropdown-row-height1.625rem1.625rem
--nol-dropdown-row-padding0.5rem0.5rem
--nol-settings-item-padding-inline0.875rem0.875rem
--nol-settings-item-padding0.75rem var(--nol-settings-item-padding-inline) 1.125rem0.75rem var(--nol-settings-item-padding-inline) 1.125rem
--nol-settings-item-description-gap0.1875rem0.1875rem
--nol-settings-item-control-gap0.5625rem0.5625rem
--nol-settings-heading-space0.625rem0.625rem
--nol-settings-content-inset0.9375rem0.9375rem
--nol-code-header-height1.625rem1.625rem
--nol-reference-mark0.875rem0.875rem
--nol-reference-mark-slot-radius0.1875rem0.1875rem
--nol-reference-chip-max-width27.5rem27.5rem
--nol-reference-card-width27.5rem27.5rem
--nol-reference-card-radius0.75rem0.75rem
--nol-reference-card-padding1rem 1.125rem1rem 1.125rem
--nol-reference-card-top-gap0.625rem0.625rem
--nol-reference-badge-height1.625rem1.625rem
--nol-reference-item-gap0.375rem0.375rem
--nol-reference-pill-height1.75rem1.75rem
--nol-reference-pill-padding0.625rem0.625rem
--nol-reference-dot0.4375rem0.4375rem
--nol-reference-dot-gap0.3rem0.3rem
--nol-pointer-target24px24px

Built from other tokens

TokenLightDark
--nol-icon-button-targetmax(var(--nol-pointer-target), var(--nol-icon-button))max(var(--nol-pointer-target), var(--nol-icon-button))
--nol-inline-codecolor-mix(in srgb, var(--nol-text) 12%, transparent)color-mix(in srgb, var(--nol-text) 12%, transparent)
--nol-text-tabvar(--nol-text-muted)var(--nol-text-muted)
--nol-text-placeholdervar(--nol-text-muted)var(--nol-text-muted)
--nol-added-backgroundcolor-mix(in srgb, var(--nol-added) 10%, transparent)color-mix(in srgb, var(--nol-added) 10%, transparent)
--nol-removed-backgroundcolor-mix(in srgb, var(--nol-removed) 10%, transparent)color-mix(in srgb, var(--nol-removed) 10%, transparent)
--nol-added-changelight-dark(color-mix(in srgb, var(--nol-added) 22%, var(--nol-code)), color-mix(in srgb, var(--nol-added) 30%, var(--nol-code)))light-dark(color-mix(in srgb, var(--nol-added) 22%, var(--nol-code)), color-mix(in srgb, var(--nol-added) 30%, var(--nol-code)))
--nol-removed-changelight-dark(color-mix(in srgb, var(--nol-removed) 22%, var(--nol-code)), color-mix(in srgb, var(--nol-removed) 30%, var(--nol-code)))light-dark(color-mix(in srgb, var(--nol-removed) 22%, var(--nol-code)), color-mix(in srgb, var(--nol-removed) 30%, var(--nol-code)))
--nol-button-danger-hovercolor-mix(in srgb, var(--nol-error) 90%, var(--nol-button-danger-text))color-mix(in srgb, var(--nol-error) 90%, var(--nol-button-danger-text))