@databricks/design-system 2.0.4 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/design-guidance/docs/README.md +40 -0
- package/design-guidance/docs/review-contract.md +22 -0
- package/design-guidance/docs/tokens.md +35 -0
- package/design-guidance/docs/voice.md +40 -0
- package/design-guidance/skills/dbui-build-screen.md +24 -0
- package/design-guidance/skills/dbui-check-ecosystem.md +21 -0
- package/design-guidance/skills/dbui-check-guidelines.md +29 -0
- package/design-guidance/skills/dbui-check-principles.md +26 -0
- package/design-guidance/skills/dbui-check-voice.md +17 -0
- package/design-guidance/skills/dbui-pick-component.md +23 -0
- package/design-guidance/skills/dbui-pick-icon.md +23 -0
- package/design-guidance/skills/dbui-review.md +30 -0
- package/design-guidance/skills/dbui-validate.md +23 -0
- package/dist/RHFControlledTypeaheadComboboxV2-Ct9x3rC1.js +172 -0
- package/dist/RHFControlledTypeaheadComboboxV2-Ct9x3rC1.js.map +1 -0
- package/dist/{WizardStepContentWrapper-8bs2FwRi.js → WizardStepContentWrapper-6YTjeEaA.js} +1017 -840
- package/dist/WizardStepContentWrapper-6YTjeEaA.js.map +1 -0
- package/dist/icon-metadata.json +2064 -0
- package/dist/index-DiRpSwH2.js +8509 -0
- package/dist/index-DiRpSwH2.js.map +1 -0
- package/dist/index-dark.css +648 -113
- package/dist/index-dark.mitigated.css +648 -113
- package/dist/index.css +1045 -145
- package/dist/index.js +27 -8148
- package/dist/index.js.map +1 -1
- package/dist/index.mitigated.css +1046 -146
- package/dist/patterns.js +3 -3
- package/dist-types/design-system/Breadcrumb/Breadcrumb.d.ts +10 -3
- package/dist-types/design-system/Button/AntDButtonInternal.d.ts +21 -0
- package/dist-types/design-system/Button/Button.d.ts +3 -19
- package/dist-types/design-system/Button/NativeButton.d.ts +3 -0
- package/dist-types/design-system/Button/getBtnClassName.d.ts +17 -0
- package/dist-types/design-system/Button/index.d.ts +1 -0
- package/dist-types/design-system/DesignSystemProvider/DesignTokenScopeWithEmotionTheme.d.ts +4 -4
- package/dist-types/design-system/Drawer/Drawer.d.ts +3 -1
- package/dist-types/design-system/FormV2/RHFAdapters.d.ts +8 -0
- package/dist-types/design-system/FormV2/RHFControlledTypeaheadComboboxV2.d.ts +58 -0
- package/dist-types/design-system/Icon/AntdIcon.d.ts +3 -0
- package/dist-types/design-system/Icon/Icon.d.ts +21 -7
- package/dist-types/design-system/Icon/NativeIcon.d.ts +3 -0
- package/dist-types/design-system/Icon/__generated/icons/ColorMappingEditIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/ColorMappingIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/LakewatchIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/MicrophoneIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/MicrophoneOffIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/OperatorIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/VoiceModeIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/index.d.ts +7 -0
- package/dist-types/design-system/Icon/index.d.ts +1 -0
- package/dist-types/design-system/Icon/utils.d.ts +1 -0
- package/dist-types/design-system/Overflow/Overflow.d.ts +3 -1
- package/dist-types/design-system/Overflow/OverflowPopover.d.ts +2 -1
- package/dist-types/design-system/TypeaheadComboboxV2/TypeaheadComboboxMenu.d.ts +2 -0
- package/dist-types/design-system/_shared_/Tabs/styles.d.ts +2 -3
- package/dist-types/design-system/shape-tokens.d.ts +1 -1
- package/dist-types/test-utils/rtl/buttonVariants.d.ts +4 -4
- package/dist-types/~patterns/Wizard/WizardModal.d.ts +1 -1
- package/dist-types/~patterns/Wizard/WizardStepNavigation.d.ts +9 -0
- package/dist-types/~patterns/Wizard/index.d.ts +1 -0
- package/package.json +9 -5
- package/dist/WizardStepContentWrapper-8bs2FwRi.js.map +0 -1
package/dist/index.mitigated.css
CHANGED
|
@@ -15820,7 +15820,7 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
15820
15820
|
*/
|
|
15821
15821
|
.db-stack {
|
|
15822
15822
|
/* These variables act as the *parameters* for the stack instance. */
|
|
15823
|
-
--db-stack-gap: var(--db-
|
|
15823
|
+
--db-stack-gap: var(--db-space-4);
|
|
15824
15824
|
--db-stack-align: stretch;
|
|
15825
15825
|
|
|
15826
15826
|
display: flex;
|
|
@@ -15848,7 +15848,7 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
15848
15848
|
*/
|
|
15849
15849
|
.db-cluster {
|
|
15850
15850
|
/* These variables act as the *parameters* for the cluster instance. */
|
|
15851
|
-
--db-cluster-gap: var(--db-
|
|
15851
|
+
--db-cluster-gap: var(--db-space-2);
|
|
15852
15852
|
--db-cluster-align: center;
|
|
15853
15853
|
--db-cluster-justify: flex-start;
|
|
15854
15854
|
|
|
@@ -15861,81 +15861,106 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
15861
15861
|
|
|
15862
15862
|
:where(:root), :where(.du-bois-light) {
|
|
15863
15863
|
/* Neutral */
|
|
15864
|
-
--db-
|
|
15865
|
-
--db-subtle
|
|
15866
|
-
--db-strong
|
|
15864
|
+
--db-surface-base: var(--db-color-background-primary);
|
|
15865
|
+
--db-surface-subtle: var(--db-color-background-secondary);
|
|
15866
|
+
--db-surface-strong: initial; /* TODO */
|
|
15867
15867
|
|
|
15868
|
-
--db-
|
|
15869
|
-
--db-
|
|
15870
|
-
--db-
|
|
15868
|
+
--db-surface-inverse: initial; /* TODO */
|
|
15869
|
+
--db-surface-active: var(--db-color-table-background-selected-default);
|
|
15870
|
+
--db-surface-hover: var(--db-color-table-background-unselected-hover);
|
|
15871
|
+
--db-surface-disabled: var(--db-color-action-disabled-background);
|
|
15871
15872
|
|
|
15872
|
-
--db-
|
|
15873
|
-
--db-
|
|
15874
|
-
--db-
|
|
15873
|
+
--db-surface-selected: var(--db-color-table-background-selected-hover);
|
|
15874
|
+
--db-surface-selected-hover: initial; /* TODO */;
|
|
15875
|
+
--db-surface-selected-active: var(--db-color-table-background-selected-hover); /* no distinct active value */
|
|
15875
15876
|
|
|
15876
|
-
|
|
15877
|
-
--db-
|
|
15878
|
-
|
|
15879
|
-
--db-neutral-surface-disabled: var(--db-color-action-disabled-background);
|
|
15880
|
-
--db-text-on-neutral-surface-disabled: var(--db-color-action-disabled-text);
|
|
15877
|
+
/* Surface alpha-blending modifiers */
|
|
15878
|
+
--db-surface-backdrop: initial; /* TODO */;
|
|
15879
|
+
/* TODO: surface-tint for containers that distinguish some content */
|
|
15881
15880
|
|
|
15882
|
-
|
|
15883
|
-
--db-
|
|
15884
|
-
--db-
|
|
15885
|
-
--db-
|
|
15881
|
+
--db-text-base: var(--db-color-text-primary);
|
|
15882
|
+
--db-text-subtle: var(--db-color-text-secondary);
|
|
15883
|
+
--db-text-strong: initial; /* TODO */
|
|
15884
|
+
--db-text-disabled: var(--db-color-action-disabled-text);
|
|
15885
|
+
--db-text-suggestion: initial; /* TODO - e.g. input placeholder, loading text */
|
|
15886
|
+
--db-text-inverse: initial; /* TODO, stark contrast e.g. tooltip text */
|
|
15886
15887
|
|
|
15887
|
-
--db-
|
|
15888
|
-
--db-
|
|
15889
|
-
--db-
|
|
15890
|
-
--db-
|
|
15888
|
+
--db-border-base: var(--db-color-border);
|
|
15889
|
+
--db-border-subtle: initial; /* TODO */
|
|
15890
|
+
--db-border-strong: var(--db-color-border-accessible);
|
|
15891
|
+
--db-border-hover: initial; /* TODO */
|
|
15892
|
+
--db-border-active: initial; /* TODO */
|
|
15893
|
+
--db-border-disabled: initial; /* TODO */
|
|
15891
15894
|
|
|
15892
|
-
|
|
15893
|
-
--db-
|
|
15894
|
-
--db-
|
|
15895
|
+
/* Accent */
|
|
15896
|
+
--db-accent-surface: var(--db-color-action-primary-background-default);
|
|
15897
|
+
--db-accent-surface-subtle: var(--db-color-action-default-background-hover);
|
|
15898
|
+
--db-accent-surface-strong: var(--db-color-action-primary-background-hover);
|
|
15895
15899
|
|
|
15896
|
-
--db-
|
|
15897
|
-
--db-
|
|
15898
|
-
--db-
|
|
15899
|
-
--db-primary-surface-disabled: var(--db-color-action-disabled-background);
|
|
15900
|
-
--db-text-on-primary-surface-disabled: var(--db-color-action-disabled-text);
|
|
15900
|
+
--db-accent-surface-hover: var(--db-color-action-primary-background-hover);
|
|
15901
|
+
--db-accent-surface-active: var(--db-color-action-primary-background-press); /* no distinct active value */
|
|
15902
|
+
--db-accent-surface-selected: var(--db-color-action-primary-background-press);
|
|
15901
15903
|
|
|
15902
|
-
/*
|
|
15903
|
-
--db-
|
|
15904
|
-
--db-
|
|
15905
|
-
--db-strong-error-surface: var(--db-color-action-danger-primary-background-hover);
|
|
15904
|
+
/* In the current design, the text color for an accent surface does not change with hover, active, etc. */
|
|
15905
|
+
--db-accent-text: var(--db-color-action-link-default);
|
|
15906
|
+
--db-text-on-accent-surface: var(--db-color-action-primary-text-default);
|
|
15906
15907
|
|
|
15907
|
-
--db-
|
|
15908
|
-
--db-
|
|
15909
|
-
--db-
|
|
15910
|
-
--db-strong-text-on-error-surface: var(--db-color-action-danger-primary-text);
|
|
15908
|
+
--db-accent-border: var(--db-color-action-primary-background-default);
|
|
15909
|
+
--db-accent-border-hover: var(--db-color-action-primary-background-press);
|
|
15910
|
+
--db-accent-border-active: initial; /* TODO */;
|
|
15911
15911
|
|
|
15912
|
-
|
|
15913
|
-
--db-
|
|
15914
|
-
--db-
|
|
15912
|
+
/* Negative */
|
|
15913
|
+
--db-negative-surface: var(--db-color-action-danger-primary-background-default);
|
|
15914
|
+
--db-negative-surface-subtle: var(--db-color-background-danger);
|
|
15915
|
+
--db-negative-surface-strong: var(--db-color-action-danger-primary-background-hover);
|
|
15915
15916
|
|
|
15916
|
-
--db-
|
|
15917
|
-
--db-
|
|
15918
|
-
--db-
|
|
15919
|
-
--db-error-surface-disabled: var(--db-color-action-disabled-background);
|
|
15920
|
-
--db-text-on-error-surface-disabled: var(--db-color-action-disabled-text);
|
|
15917
|
+
--db-negative-surface-hover: var(--db-color-action-danger-primary-background-hover);
|
|
15918
|
+
--db-negative-surface-active: var(--db-color-action-danger-primary-background-press); /* no distinct active value */
|
|
15919
|
+
--db-negative-surface-selected: var(--db-color-action-danger-primary-background-press);
|
|
15921
15920
|
|
|
15922
|
-
|
|
15923
|
-
--db-
|
|
15924
|
-
--db-subtle-warning-surface: var(--db-color-background-warning);
|
|
15921
|
+
--db-negative-text: var(--db-color-text-validation-danger);
|
|
15922
|
+
--db-text-on-negative-surface: var(--db-color-action-danger-primary-text);
|
|
15925
15923
|
|
|
15926
|
-
--db-
|
|
15927
|
-
--db-
|
|
15924
|
+
--db-negative-border: var(--db-color-action-danger-default-border-default);
|
|
15925
|
+
--db-negative-border-hover: initial; /* TODO */
|
|
15926
|
+
--db-negative-border-active: initial; /* TODO */
|
|
15928
15927
|
|
|
15929
|
-
|
|
15928
|
+
/* Caution */
|
|
15929
|
+
--db-caution-surface: initial; /* TODO */
|
|
15930
|
+
--db-caution-surface-subtle: var(--db-color-background-warning);
|
|
15931
|
+
--db-caution-surface-strong: initial; /* TODO */
|
|
15930
15932
|
|
|
15931
|
-
/*
|
|
15932
|
-
--db-
|
|
15933
|
-
--db-
|
|
15933
|
+
--db-caution-surface-hover: initial; /* TODO */
|
|
15934
|
+
--db-caution-surface-active: initial; /* TODO */
|
|
15935
|
+
--db-caution-surface-selected: initial; /* TODO */
|
|
15934
15936
|
|
|
15935
|
-
--db-text-
|
|
15936
|
-
--db-
|
|
15937
|
+
--db-caution-text: var(--db-color-text-validation-warning);
|
|
15938
|
+
--db-text-on-caution-surface: initial; /* TODO */
|
|
15937
15939
|
|
|
15938
|
-
--db-
|
|
15940
|
+
--db-caution-border: var(--db-color-border-warning);
|
|
15941
|
+
--db-caution-border-hover: initial; /* TODO */
|
|
15942
|
+
--db-caution-border-active: initial; /* TODO */
|
|
15943
|
+
|
|
15944
|
+
/* Positive */
|
|
15945
|
+
--db-positive-surface: initial; /* TODO */
|
|
15946
|
+
--db-positive-surface-subtle: var(--db-color-background-success);
|
|
15947
|
+
--db-positive-surface-strong: initial; /* TODO */
|
|
15948
|
+
|
|
15949
|
+
--db-positive-surface-hover: initial; /* TODO */
|
|
15950
|
+
--db-positive-surface-active: initial; /* TODO */
|
|
15951
|
+
--db-positive-surface-selected: initial; /* TODO */
|
|
15952
|
+
|
|
15953
|
+
--db-positive-text: var(--db-color-text-validation-success);
|
|
15954
|
+
--db-text-on-positive-surface: initial; /* TODO */
|
|
15955
|
+
|
|
15956
|
+
--db-positive-border: initial; /* TODO */
|
|
15957
|
+
--db-positive-border-hover: initial; /* TODO */
|
|
15958
|
+
--db-positive-border-active: initial; /* TODO */
|
|
15959
|
+
|
|
15960
|
+
/* Branded */
|
|
15961
|
+
--db-ai-gradient-start: #4299e0;
|
|
15962
|
+
--db-ai-gradient-mid: #ca42e0;
|
|
15963
|
+
--db-ai-gradient-end: #ff5f46;
|
|
15939
15964
|
}
|
|
15940
15965
|
|
|
15941
15966
|
|
|
@@ -15944,32 +15969,39 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
15944
15969
|
--db-layout-unit: 0.25rem; /* 4px */
|
|
15945
15970
|
--db-density-scalar: 1;
|
|
15946
15971
|
--db-size-scalar: 1;
|
|
15947
|
-
--db-
|
|
15972
|
+
--db-space-scalar: 1;
|
|
15948
15973
|
|
|
15949
15974
|
/* Size and spacing are the same steps, but with their own scalars included in the calc. */
|
|
15950
15975
|
|
|
15951
|
-
--db-size-
|
|
15952
|
-
--db-size-
|
|
15953
|
-
--db-size-
|
|
15954
|
-
--db-size-
|
|
15955
|
-
--db-size-
|
|
15956
|
-
--db-size-
|
|
15957
|
-
|
|
15958
|
-
--db-
|
|
15959
|
-
--db-
|
|
15960
|
-
--db-
|
|
15961
|
-
|
|
15962
|
-
--db-
|
|
15963
|
-
--db-
|
|
15976
|
+
--db-size-1: calc(var(--db-layout-unit) * 1 * var(--db-density-scalar) * var(--db-size-scalar)); /* 4px */
|
|
15977
|
+
--db-size-2: calc(var(--db-layout-unit) * 2 * var(--db-density-scalar) * var(--db-size-scalar)); /* 8px */
|
|
15978
|
+
--db-size-3: calc(var(--db-layout-unit) * 3 * var(--db-density-scalar) * var(--db-size-scalar)); /* 12px */
|
|
15979
|
+
--db-size-4: calc(var(--db-layout-unit) * 4 * var(--db-density-scalar) * var(--db-size-scalar)); /* 16px */
|
|
15980
|
+
--db-size-5: calc(var(--db-layout-unit) * 5 * var(--db-density-scalar) * var(--db-size-scalar)); /* 20px */
|
|
15981
|
+
--db-size-6: calc(var(--db-layout-unit) * 6 * var(--db-density-scalar) * var(--db-size-scalar)); /* 24px */
|
|
15982
|
+
--db-size-7: calc(var(--db-layout-unit) * 7 * var(--db-density-scalar) * var(--db-size-scalar)); /* 28px */
|
|
15983
|
+
--db-size-8: calc(var(--db-layout-unit) * 8 * var(--db-density-scalar) * var(--db-size-scalar)); /* 32px */
|
|
15984
|
+
--db-size-10: calc(var(--db-layout-unit) * 10 * var(--db-density-scalar) * var(--db-size-scalar)); /* 40px */
|
|
15985
|
+
--db-size-12: calc(var(--db-layout-unit) * 12 * var(--db-density-scalar) * var(--db-size-scalar)); /* 48px */
|
|
15986
|
+
|
|
15987
|
+
--db-space-0-5: calc(var(--db-layout-unit) * 0.5 * var(--db-density-scalar) * var(--db-space-scalar)); /* 2px */
|
|
15988
|
+
--db-space-1: calc(var(--db-layout-unit) * 1 * var(--db-density-scalar) * var(--db-space-scalar)); /* 4px */
|
|
15989
|
+
--db-space-2: calc(var(--db-layout-unit) * 2 * var(--db-density-scalar) * var(--db-space-scalar)); /* 8px */
|
|
15990
|
+
--db-space-3: calc(var(--db-layout-unit) * 3 * var(--db-density-scalar) * var(--db-space-scalar)); /* 12px */
|
|
15991
|
+
--db-space-4: calc(var(--db-layout-unit) * 4 * var(--db-density-scalar) * var(--db-space-scalar)); /* 16px */
|
|
15992
|
+
--db-space-6: calc(var(--db-layout-unit) * 6 * var(--db-density-scalar) * var(--db-space-scalar)); /* 24px */
|
|
15993
|
+
--db-space-8: calc(var(--db-layout-unit) * 8 * var(--db-density-scalar) * var(--db-space-scalar)); /* 32px */
|
|
15994
|
+
--db-space-10: calc(var(--db-layout-unit) * 10 * var(--db-density-scalar) * var(--db-space-scalar)); /* 40px */
|
|
15964
15995
|
}
|
|
15965
15996
|
|
|
15966
15997
|
:where(:root), :where(.du-bois-light) {
|
|
15967
15998
|
--db-font-family:
|
|
15968
15999
|
"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
16000
|
+
--db-numeric-font-family: var(--db-font-family);
|
|
15969
16001
|
--db-mono-font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
15970
16002
|
|
|
15971
|
-
--db-font-size-
|
|
15972
|
-
--db-font-size-
|
|
16003
|
+
--db-font-size-xs: 0.6875rem; /* 11px */
|
|
16004
|
+
--db-font-size-sm: 0.75rem; /* 12px */
|
|
15973
16005
|
--db-font-size-base: 0.8125rem; /* 13px */
|
|
15974
16006
|
--db-font-size-md: 0.875rem; /* 14px */
|
|
15975
16007
|
--db-font-size-lg: 0.9375rem; /* 15px */
|
|
@@ -15978,6 +16010,8 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
15978
16010
|
--db-font-size-3xl: 1.5rem; /* 24px */
|
|
15979
16011
|
--db-font-size-4xl: 2rem; /* 32px */
|
|
15980
16012
|
|
|
16013
|
+
/* TODO: media query for mobile font sizes */
|
|
16014
|
+
|
|
15981
16015
|
/* Du Bois v1 ships 400 and 600 only */
|
|
15982
16016
|
--db-font-weight-normal: 400;
|
|
15983
16017
|
--db-font-weight-medium: initial; /* TODO */
|
|
@@ -15995,6 +16029,57 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
15995
16029
|
:where(:root), :where(.du-bois-light) {
|
|
15996
16030
|
--db-focus-ring-color: var(--db-color-action-default-border-focus);
|
|
15997
16031
|
--db-focus-ring-width: 2px;
|
|
16032
|
+
--db-focus-ring-offset: 2px;
|
|
16033
|
+
}
|
|
16034
|
+
|
|
16035
|
+
:where(:root), :where(.du-bois-light) {
|
|
16036
|
+
--db-shape-control: 4px;
|
|
16037
|
+
--db-shape-control-large: 999px;
|
|
16038
|
+
--db-shape-container-small: 8px;
|
|
16039
|
+
--db-shape-container-medium: 12px;
|
|
16040
|
+
--db-shape-container-large: 16px;
|
|
16041
|
+
--db-shape-pill: 999px;
|
|
16042
|
+
}
|
|
16043
|
+
|
|
16044
|
+
:where(:root), :where(.du-bois-light) {
|
|
16045
|
+
/* Shape */
|
|
16046
|
+
/* Mirrors the ShapeTokens host-override var used by list items; falls back to the theme radius. */
|
|
16047
|
+
--db-list-item-border-radius: var(--list-item-border-radius, 4px);
|
|
16048
|
+
|
|
16049
|
+
/* Color */
|
|
16050
|
+
--db-list-surface: var(--db-surface-base);
|
|
16051
|
+
--db-list-text: var(--db-text-base);
|
|
16052
|
+
--db-list-header-text: var(--db-text-subtle);
|
|
16053
|
+
--db-list-separator: var(--db-border-subtle);
|
|
16054
|
+
|
|
16055
|
+
--db-list-item-surface-hover: var(--db-surface-hover);
|
|
16056
|
+
--db-list-item-surface-active: var(--db-surface-active);
|
|
16057
|
+
--db-list-item-surface-selected: var(--db-accent-surface-subtle);
|
|
16058
|
+
--db-list-item-surface-disabled: var(--db-surface-disabled);
|
|
16059
|
+
|
|
16060
|
+
--db-list-item-text-selected: var(--db-accent-text);
|
|
16061
|
+
--db-list-item-text-disabled: var(--db-text-disabled);
|
|
16062
|
+
|
|
16063
|
+
--db-list-item-danger-text: var(--db-negative-text);
|
|
16064
|
+
--db-list-item-danger-surface-hover: var(--db-negative-surface-subtle);
|
|
16065
|
+
|
|
16066
|
+
/* Density */
|
|
16067
|
+
--db-list-item-padding: var(--db-space-2);
|
|
16068
|
+
--db-list-item-height: var(--db-size-8);
|
|
16069
|
+
}
|
|
16070
|
+
|
|
16071
|
+
:where(:root), :where(.du-bois-light) {
|
|
16072
|
+
/* Shape */
|
|
16073
|
+
/* Mirrors the ShapeTokens host-override var; falls back to the v1 value (borderRadiusSm). */
|
|
16074
|
+
--db-popup-border-radius: var(--popup-border-radius, 4px);
|
|
16075
|
+
|
|
16076
|
+
/* Color */
|
|
16077
|
+
--db-popup-surface: var(--db-surface-base);
|
|
16078
|
+
--db-popup-text: var(--db-text-base);
|
|
16079
|
+
--db-popup-border: var(--db-border-base);
|
|
16080
|
+
|
|
16081
|
+
/* Elevation */
|
|
16082
|
+
--db-popup-elevation: var(--db-elevation-med);
|
|
15998
16083
|
}
|
|
15999
16084
|
|
|
16000
16085
|
:where(:root), :where(.du-bois-light) {
|
|
@@ -16002,36 +16087,451 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16002
16087
|
--db-selection-toggle-border-radius: 4px;
|
|
16003
16088
|
|
|
16004
16089
|
/* Color */
|
|
16005
|
-
--db-selection-toggle-surface: var(--db-
|
|
16006
|
-
--db-selection-toggle-mark: var(--db-text-on-
|
|
16007
|
-
--db-selection-toggle-text: var(--db-text-
|
|
16008
|
-
--db-selection-toggle-border: var(--db-strong
|
|
16009
|
-
|
|
16010
|
-
--db-selection-toggle-surface-hover: var(--db-
|
|
16011
|
-
--db-selection-toggle-surface-
|
|
16012
|
-
--db-selection-toggle-surface-checked: var(--db-
|
|
16013
|
-
--db-selection-toggle-surface-checked-hover: var(--db-
|
|
16014
|
-
--db-selection-toggle-surface-checked-
|
|
16015
|
-
--db-selection-toggle-surface-disabled: var(--db-
|
|
16016
|
-
--db-selection-toggle-surface-checked-disabled: var(--db-
|
|
16017
|
-
|
|
16018
|
-
--db-selection-toggle-border-hover: var(--db-
|
|
16019
|
-
--db-selection-toggle-border-
|
|
16020
|
-
--db-selection-toggle-border-disabled: var(--db-
|
|
16021
|
-
|
|
16022
|
-
--db-selection-toggle-mark-disabled: var(--db-text-
|
|
16023
|
-
--db-selection-toggle-text-disabled: var(--db-text-
|
|
16090
|
+
--db-selection-toggle-surface: var(--db-surface-base);
|
|
16091
|
+
--db-selection-toggle-mark: var(--db-text-on-accent-surface);
|
|
16092
|
+
--db-selection-toggle-text: var(--db-text-base);
|
|
16093
|
+
--db-selection-toggle-border: var(--db-border-strong);
|
|
16094
|
+
|
|
16095
|
+
--db-selection-toggle-surface-hover: var(--db-surface-hover);
|
|
16096
|
+
--db-selection-toggle-surface-active: var(--db-surface-selected-active);
|
|
16097
|
+
--db-selection-toggle-surface-checked: var(--db-accent-surface);
|
|
16098
|
+
--db-selection-toggle-surface-checked-hover: var(--db-accent-surface-hover);
|
|
16099
|
+
--db-selection-toggle-surface-checked-active: var(--db-accent-surface-active);
|
|
16100
|
+
--db-selection-toggle-surface-disabled: var(--db-surface-disabled);
|
|
16101
|
+
--db-selection-toggle-surface-checked-disabled: var(--db-surface-disabled);
|
|
16102
|
+
|
|
16103
|
+
--db-selection-toggle-border-hover: var(--db-accent-surface-hover);
|
|
16104
|
+
--db-selection-toggle-border-active: var(--db-accent-surface-active);
|
|
16105
|
+
--db-selection-toggle-border-disabled: var(--db-border-base);
|
|
16106
|
+
|
|
16107
|
+
--db-selection-toggle-mark-disabled: var(--db-text-disabled);
|
|
16108
|
+
--db-selection-toggle-text-disabled: var(--db-text-disabled);
|
|
16024
16109
|
|
|
16025
16110
|
--db-selection-toggle-shadow-checked: 0 0 0 1px var(--db-color-action-primary-background-default);
|
|
16026
16111
|
|
|
16027
16112
|
/* Density */
|
|
16028
|
-
--db-selection-toggle-size: var(--db-size-
|
|
16029
|
-
--db-selection-toggle-label-spacing: var(--db-
|
|
16113
|
+
--db-selection-toggle-size: var(--db-size-4);
|
|
16114
|
+
--db-selection-toggle-label-spacing: var(--db-space-2);
|
|
16030
16115
|
|
|
16031
16116
|
/* Motion */
|
|
16032
16117
|
--db-selection-toggle-transition-duration: 120ms;
|
|
16033
16118
|
}
|
|
16034
16119
|
|
|
16120
|
+
|
|
16121
|
+
|
|
16122
|
+
/* Component-tier tokens for the native <Button>, grouped by area (density, shape, typography, color).
|
|
16123
|
+
* Colors alias the action-* system tokens; sizes alias the system density scale.
|
|
16124
|
+
*
|
|
16125
|
+
* Follows the mortar/action.css pattern: one semantic set (surface / border / text, each with
|
|
16126
|
+
* -hover / -active / -disabled) whose defaults are the secondary variant. The variant classes that
|
|
16127
|
+
* re-set these tokens per variant live in NativeButton.css; this file declares only tokens. */
|
|
16128
|
+
|
|
16129
|
+
/* Declared under the theme classes too (not just :root) so the var() chain re-resolves inside a
|
|
16130
|
+
* `.du-bois-dark` subtree (or a portal that re-applies the theme class) instead of freezing at the root values. */
|
|
16131
|
+
:where(:root), :where(.du-bois-light) {
|
|
16132
|
+
/* ── Density ──────────────────────────────────────────────────────────── */
|
|
16133
|
+
--db-btn-height: var(--db-size-8);
|
|
16134
|
+
--db-btn-height-small: var(--db-size-6);
|
|
16135
|
+
--db-btn-icon-size: var(--db-size-4);
|
|
16136
|
+
--db-btn-border-width: 1px;
|
|
16137
|
+
--db-btn-padding-vertical: var(--db-space-1);
|
|
16138
|
+
--db-btn-padding-horizontal: var(--db-space-3);
|
|
16139
|
+
--db-btn-padding-horizontal-small: var(--db-space-2);
|
|
16140
|
+
/* Icon/force-icon horizontal padding: half the standard horizontal padding. */
|
|
16141
|
+
--db-btn-padding-horizontal-icon: calc(var(--db-space-3) / 2); /* 6px */
|
|
16142
|
+
--db-btn-gap: var(--db-space-1);
|
|
16143
|
+
--db-btn-end-icon-gap: var(--db-space-2);
|
|
16144
|
+
--db-btn-end-icon-gap-small: var(--db-space-1);
|
|
16145
|
+
/* Width of a content-less button while loading, so the standalone spinner has room. */
|
|
16146
|
+
--db-btn-loading-empty-width: var(--db-size-10);
|
|
16147
|
+
|
|
16148
|
+
/* ── Shape ────────────────────────────────────────────────────────────── */
|
|
16149
|
+
--db-btn-border-radius: var(--db-shape-control);
|
|
16150
|
+
|
|
16151
|
+
/* ── Typography ───────────────────────────────────────────────────────── */
|
|
16152
|
+
--db-btn-font-size: var(--db-font-size-base);
|
|
16153
|
+
--db-btn-icon-only-font-size: var(--db-font-size-lg); /* 15px */
|
|
16154
|
+
--db-btn-font-weight: var(--db-font-weight-normal);
|
|
16155
|
+
/* Line heights are hard-coded until the typography scale ships computed per-level line-height tokens. */
|
|
16156
|
+
--db-btn-line-height: 1.25rem; /* 20px */
|
|
16157
|
+
--db-btn-line-height-small: 1rem; /* 16px */
|
|
16158
|
+
|
|
16159
|
+
/* ── Color: semantic set (defaults = secondary variant) ───────────────── */
|
|
16160
|
+
--db-btn-surface: var(--db-color-action-default-background-default);
|
|
16161
|
+
--db-btn-surface-hover: var(--db-color-action-default-background-hover);
|
|
16162
|
+
--db-btn-surface-active: var(--db-color-action-default-background-press);
|
|
16163
|
+
--db-btn-surface-disabled: transparent;
|
|
16164
|
+
--db-btn-border: var(--db-color-action-default-border-default);
|
|
16165
|
+
--db-btn-border-hover: var(--db-color-action-default-border-hover);
|
|
16166
|
+
--db-btn-border-active: var(--db-color-action-default-border-press);
|
|
16167
|
+
--db-btn-border-disabled: var(--db-color-action-disabled-border);
|
|
16168
|
+
--db-btn-text: var(--db-color-action-default-text-default);
|
|
16169
|
+
--db-btn-text-hover: var(--db-color-action-default-text-hover);
|
|
16170
|
+
--db-btn-text-active: var(--db-color-action-default-text-press);
|
|
16171
|
+
--db-btn-text-disabled: var(--db-color-action-disabled-text);
|
|
16172
|
+
|
|
16173
|
+
/* ── Focus & icon ─────────────────────────────────────────────────────── */
|
|
16174
|
+
--db-btn-focus-ring: var(--db-color-action-default-border-focus);
|
|
16175
|
+
--db-btn-danger-focus-ring: var(--db-color-action-danger-primary-background-default);
|
|
16176
|
+
--db-btn-icon-glyph: var(--db-color-text-secondary);
|
|
16177
|
+
}
|
|
16178
|
+
|
|
16179
|
+
/* Native <Button> visual styles. Consumes the component-tier `--db-btn-*` tokens (see tokens.css);
|
|
16180
|
+
* the variant classes below re-set those tokens per variant and the rules that follow paint them.
|
|
16181
|
+
* Shipped via mortar.css. */
|
|
16182
|
+
|
|
16183
|
+
/* ── 0. Variant token re-sets ──────────────────────────────────────────────
|
|
16184
|
+
* Each variant class re-sets the semantic tokens declared in tokens.css; combined classes win by
|
|
16185
|
+
* specificity, which beats the `:where(:root)` (specificity 0) defaults regardless of file order. */
|
|
16186
|
+
.db-btn-primary {
|
|
16187
|
+
--db-btn-surface: var(--db-color-action-primary-background-default);
|
|
16188
|
+
--db-btn-surface-hover: var(--db-color-action-primary-background-hover);
|
|
16189
|
+
--db-btn-surface-active: var(--db-color-action-primary-background-press);
|
|
16190
|
+
--db-btn-surface-disabled: var(--db-color-action-disabled-border);
|
|
16191
|
+
--db-btn-border: transparent;
|
|
16192
|
+
--db-btn-border-hover: transparent;
|
|
16193
|
+
--db-btn-border-active: transparent;
|
|
16194
|
+
--db-btn-border-disabled: transparent;
|
|
16195
|
+
--db-btn-text: var(--db-color-action-primary-text-default);
|
|
16196
|
+
--db-btn-text-hover: var(--db-color-action-primary-text-hover);
|
|
16197
|
+
--db-btn-text-active: var(--db-color-action-primary-text-press);
|
|
16198
|
+
--db-btn-text-disabled: var(--db-color-action-primary-text-default);
|
|
16199
|
+
}
|
|
16200
|
+
.db-btn-tertiary,
|
|
16201
|
+
.db-btn-link {
|
|
16202
|
+
--db-btn-surface: var(--db-color-action-tertiary-background-default);
|
|
16203
|
+
--db-btn-surface-disabled: var(--db-color-action-tertiary-background-default);
|
|
16204
|
+
--db-btn-border: var(--db-color-action-tertiary-background-default);
|
|
16205
|
+
--db-btn-border-hover: transparent;
|
|
16206
|
+
--db-btn-border-active: transparent;
|
|
16207
|
+
--db-btn-border-disabled: transparent;
|
|
16208
|
+
--db-btn-text: var(--db-color-action-tertiary-text-default);
|
|
16209
|
+
--db-btn-text-hover: var(--db-color-action-tertiary-text-hover);
|
|
16210
|
+
--db-btn-text-active: var(--db-color-action-tertiary-text-press);
|
|
16211
|
+
--db-btn-text-disabled: var(--db-color-action-disabled-text);
|
|
16212
|
+
}
|
|
16213
|
+
.db-btn-tertiary {
|
|
16214
|
+
--db-btn-surface-hover: var(--db-color-action-tertiary-background-hover);
|
|
16215
|
+
--db-btn-surface-active: var(--db-color-action-tertiary-background-press);
|
|
16216
|
+
}
|
|
16217
|
+
/* Link is borderless and text-only, so its hover/press surface stays transparent. */
|
|
16218
|
+
.db-btn-link {
|
|
16219
|
+
--db-btn-surface-hover: transparent;
|
|
16220
|
+
--db-btn-surface-active: transparent;
|
|
16221
|
+
}
|
|
16222
|
+
/* Every danger button (icon included) disables to the filled treatment. */
|
|
16223
|
+
.db-btn-danger {
|
|
16224
|
+
--db-btn-surface-disabled: var(--db-color-action-disabled-border);
|
|
16225
|
+
--db-btn-border-disabled: transparent;
|
|
16226
|
+
--db-btn-text-disabled: var(--db-color-action-primary-text-default);
|
|
16227
|
+
}
|
|
16228
|
+
/* Danger, filled (primary): re-set only the surface; text/transparent border come from primary. */
|
|
16229
|
+
.db-btn-primary.db-btn-danger:not(.db-btn-icon-only) {
|
|
16230
|
+
--db-btn-surface: var(--db-color-action-danger-primary-background-default);
|
|
16231
|
+
--db-btn-surface-hover: var(--db-color-action-danger-primary-background-hover);
|
|
16232
|
+
--db-btn-surface-active: var(--db-color-action-danger-primary-background-press);
|
|
16233
|
+
}
|
|
16234
|
+
/* Danger, secondary/outlined. */
|
|
16235
|
+
.db-btn-danger:not(.db-btn-primary):not(.db-btn-tertiary):not(.db-btn-link):not(.db-btn-icon-only) {
|
|
16236
|
+
--db-btn-surface: var(--db-color-action-danger-default-background-default);
|
|
16237
|
+
--db-btn-surface-hover: var(--db-color-action-danger-default-background-hover);
|
|
16238
|
+
--db-btn-surface-active: var(--db-color-action-danger-default-background-press);
|
|
16239
|
+
--db-btn-border: var(--db-color-action-danger-default-border-default);
|
|
16240
|
+
--db-btn-border-hover: var(--db-color-action-danger-default-border-hover);
|
|
16241
|
+
--db-btn-border-active: var(--db-color-action-danger-default-border-press);
|
|
16242
|
+
--db-btn-text: var(--db-color-action-danger-default-text-default);
|
|
16243
|
+
--db-btn-text-hover: var(--db-color-action-danger-default-text-hover);
|
|
16244
|
+
--db-btn-text-active: var(--db-color-action-danger-default-text-press);
|
|
16245
|
+
}
|
|
16246
|
+
/* Danger, tertiary/link: danger text everywhere, danger surface on hover/press; resting/disabled
|
|
16247
|
+
* surface stay the tertiary ghost (override the filled danger-disabled set above). */
|
|
16248
|
+
.db-btn-tertiary.db-btn-danger,
|
|
16249
|
+
.db-btn-link.db-btn-danger {
|
|
16250
|
+
--db-btn-surface-hover: var(--db-color-action-danger-default-background-hover);
|
|
16251
|
+
--db-btn-surface-active: var(--db-color-action-danger-default-background-press);
|
|
16252
|
+
--db-btn-surface-disabled: var(--db-color-action-tertiary-background-default);
|
|
16253
|
+
--db-btn-text: var(--db-color-action-danger-default-text-default);
|
|
16254
|
+
--db-btn-text-hover: var(--db-color-action-danger-default-text-hover);
|
|
16255
|
+
--db-btn-text-active: var(--db-color-action-danger-default-text-press);
|
|
16256
|
+
--db-btn-text-disabled: var(--db-color-action-disabled-text);
|
|
16257
|
+
}
|
|
16258
|
+
/* Icon-only renders as the ghost (tertiary) treatment regardless of variant; re-set the semantic set
|
|
16259
|
+
* so the icon-only rules paint from these component tokens. */
|
|
16260
|
+
.db-btn-icon-only {
|
|
16261
|
+
--db-btn-surface: var(--db-color-action-tertiary-background-default);
|
|
16262
|
+
--db-btn-surface-hover: var(--db-color-action-tertiary-background-hover);
|
|
16263
|
+
--db-btn-surface-active: var(--db-color-action-tertiary-background-press);
|
|
16264
|
+
--db-btn-text: var(--db-color-action-tertiary-text-default);
|
|
16265
|
+
--db-btn-text-hover: var(--db-color-action-tertiary-text-hover);
|
|
16266
|
+
--db-btn-text-active: var(--db-color-action-tertiary-text-press);
|
|
16267
|
+
}
|
|
16268
|
+
/* Danger icon-only keeps the ghost resting surface (inherited above) but uses danger text and a
|
|
16269
|
+
* danger hover/press surface. */
|
|
16270
|
+
.db-btn-icon-only.db-btn-danger {
|
|
16271
|
+
--db-btn-surface-hover: var(--db-color-action-danger-default-background-hover);
|
|
16272
|
+
--db-btn-surface-active: var(--db-color-action-danger-default-background-press);
|
|
16273
|
+
--db-btn-text: var(--db-color-action-danger-default-text-default);
|
|
16274
|
+
--db-btn-text-hover: var(--db-color-action-danger-default-text-hover);
|
|
16275
|
+
--db-btn-text-active: var(--db-color-action-danger-default-text-press);
|
|
16276
|
+
}
|
|
16277
|
+
|
|
16278
|
+
/* ── 1. Base — paints the default (secondary) variant ────────────────────── */
|
|
16279
|
+
.db-btn {
|
|
16280
|
+
appearance: none;
|
|
16281
|
+
box-sizing: border-box;
|
|
16282
|
+
position: relative; /* anchors the loading spinner */
|
|
16283
|
+
display: inline-flex !important;
|
|
16284
|
+
align-items: center !important;
|
|
16285
|
+
justify-content: center !important;
|
|
16286
|
+
vertical-align: middle;
|
|
16287
|
+
white-space: nowrap;
|
|
16288
|
+
user-select: none;
|
|
16289
|
+
cursor: pointer;
|
|
16290
|
+
height: var(--db-btn-height) !important;
|
|
16291
|
+
font-family: inherit;
|
|
16292
|
+
font-size: var(--db-btn-font-size);
|
|
16293
|
+
font-weight: var(--db-btn-font-weight);
|
|
16294
|
+
line-height: var(--db-btn-line-height) !important;
|
|
16295
|
+
text-decoration: none !important;
|
|
16296
|
+
border: var(--db-btn-border-width) solid var(--db-btn-border);
|
|
16297
|
+
border-color: var(--db-btn-border) !important;
|
|
16298
|
+
border-radius: var(--db-btn-border-radius) !important;
|
|
16299
|
+
box-shadow: none !important;
|
|
16300
|
+
background-color: var(--db-btn-surface) !important;
|
|
16301
|
+
color: var(--db-btn-text) !important;
|
|
16302
|
+
}
|
|
16303
|
+
|
|
16304
|
+
/* ── 2. Padding ──────────────────────────────────────────────────────────── */
|
|
16305
|
+
.db-btn.db-btn:where(:not(.db-btn-icon-only, .db-btn-force-icon, .db-btn-link)) {
|
|
16306
|
+
padding: var(--db-btn-padding-vertical) var(--db-btn-padding-horizontal) !important;
|
|
16307
|
+
}
|
|
16308
|
+
.db-btn.db-btn-small:where(:not(.db-btn-icon-only, .db-btn-force-icon, .db-btn-link)) {
|
|
16309
|
+
padding: 0 var(--db-btn-padding-horizontal-small) !important;
|
|
16310
|
+
}
|
|
16311
|
+
.db-btn.db-btn-link {
|
|
16312
|
+
padding: 0 !important;
|
|
16313
|
+
}
|
|
16314
|
+
.db-btn.db-btn-force-icon {
|
|
16315
|
+
padding: 0 var(--db-btn-padding-horizontal-icon) !important;
|
|
16316
|
+
}
|
|
16317
|
+
|
|
16318
|
+
/* ── 3. Interactive states ───────────────────────────────────────────────── */
|
|
16319
|
+
.db-btn:hover:not(:disabled, .db-btn-loading) {
|
|
16320
|
+
background-color: var(--db-btn-surface-hover) !important;
|
|
16321
|
+
border-color: var(--db-btn-border-hover) !important;
|
|
16322
|
+
color: var(--db-btn-text-hover) !important;
|
|
16323
|
+
}
|
|
16324
|
+
.db-btn:active:not(:disabled, .db-btn-loading) {
|
|
16325
|
+
background-color: var(--db-btn-surface-active) !important;
|
|
16326
|
+
border-color: var(--db-btn-border-active) !important;
|
|
16327
|
+
color: var(--db-btn-text-active) !important;
|
|
16328
|
+
}
|
|
16329
|
+
|
|
16330
|
+
/* ── 4. Focus ────────────────────────────────────────────────────────────── */
|
|
16331
|
+
.db-btn:focus-visible {
|
|
16332
|
+
outline: 2px solid var(--db-btn-focus-ring);
|
|
16333
|
+
outline-offset: -2px;
|
|
16334
|
+
}
|
|
16335
|
+
.db-btn-primary:focus-visible {
|
|
16336
|
+
outline-offset: 1px;
|
|
16337
|
+
}
|
|
16338
|
+
.db-btn-use-focus-pseudo-class:focus {
|
|
16339
|
+
outline: 2px solid var(--db-btn-focus-ring);
|
|
16340
|
+
outline-offset: 1px;
|
|
16341
|
+
}
|
|
16342
|
+
|
|
16343
|
+
/* ── 5. Small / block (full-width) / empty ────────────────────────────────── */
|
|
16344
|
+
.db-btn-small {
|
|
16345
|
+
height: var(--db-btn-height-small) !important;
|
|
16346
|
+
}
|
|
16347
|
+
.db-btn-block {
|
|
16348
|
+
width: 100%;
|
|
16349
|
+
}
|
|
16350
|
+
.db-btn-empty {
|
|
16351
|
+
background-color: transparent !important;
|
|
16352
|
+
border-color: transparent !important;
|
|
16353
|
+
}
|
|
16354
|
+
.db-btn-default.db-btn-empty {
|
|
16355
|
+
color: var(--db-btn-icon-glyph) !important;
|
|
16356
|
+
}
|
|
16357
|
+
.db-btn-empty.db-btn-loading {
|
|
16358
|
+
width: var(--db-btn-loading-empty-width);
|
|
16359
|
+
}
|
|
16360
|
+
|
|
16361
|
+
/* ── 6. Tertiary & link ──────────────────────────────────────────────────── */
|
|
16362
|
+
.db-btn-link {
|
|
16363
|
+
height: auto !important;
|
|
16364
|
+
border: none !important;
|
|
16365
|
+
}
|
|
16366
|
+
/* Re-declare the text color for a non-icon-only tertiary/link at two-class weight so a plain
|
|
16367
|
+
* call-site `color` override loses; an icon-only glyph stays at base weight so its override wins. */
|
|
16368
|
+
.db-btn-tertiary:not(.db-btn-icon-only),
|
|
16369
|
+
.db-btn-link:not(.db-btn-icon-only) {
|
|
16370
|
+
color: var(--db-btn-text) !important;
|
|
16371
|
+
}
|
|
16372
|
+
/* Keep the resting border at two-class weight (parity with the shielded border-color). */
|
|
16373
|
+
.db-btn.db-btn-tertiary,
|
|
16374
|
+
.db-btn.db-btn-link {
|
|
16375
|
+
border-color: var(--db-btn-border) !important;
|
|
16376
|
+
}
|
|
16377
|
+
|
|
16378
|
+
/* ── 7. Danger ───────────────────────────────────────────────────────────── */
|
|
16379
|
+
.db-btn-danger:focus-visible {
|
|
16380
|
+
outline-color: var(--db-btn-danger-focus-ring);
|
|
16381
|
+
}
|
|
16382
|
+
|
|
16383
|
+
/* ── 8. Icon-only ────────────────────────────────────────────────────────── */
|
|
16384
|
+
.db-btn-icon-only {
|
|
16385
|
+
padding: 0;
|
|
16386
|
+
border: none !important;
|
|
16387
|
+
background-color: var(--db-btn-surface) !important;
|
|
16388
|
+
font-size: var(--db-btn-icon-only-font-size);
|
|
16389
|
+
}
|
|
16390
|
+
/* `:where()` keeps this at (0,1,0) so a call-site `css` width override wins, as it does for `height`. */
|
|
16391
|
+
.db-btn-icon-only:where(:not(.db-btn-small)) {
|
|
16392
|
+
width: var(--db-btn-height) !important;
|
|
16393
|
+
}
|
|
16394
|
+
.db-btn-icon-only:not(.db-btn-link, .db-btn-tertiary, [href], :hover, :active, :disabled) {
|
|
16395
|
+
color: var(--db-btn-icon-glyph) !important;
|
|
16396
|
+
}
|
|
16397
|
+
/* `:where()` on the exclusion holds this at (0,2,0): enough to tint an un-overridden icon-only link
|
|
16398
|
+
* over the base color, while still letting a consumer's own icon-color override win on source order. */
|
|
16399
|
+
.db-btn-icon-only[href]:where(:not(.db-btn-tertiary, .db-btn-link, .db-btn-danger, :disabled)) {
|
|
16400
|
+
color: var(--db-btn-text) !important;
|
|
16401
|
+
}
|
|
16402
|
+
.db-btn-icon-only:where(.db-btn-small) {
|
|
16403
|
+
width: var(--db-btn-height-small);
|
|
16404
|
+
}
|
|
16405
|
+
.db-btn-icon-only.db-btn-small {
|
|
16406
|
+
line-height: var(--db-btn-line-height-small) !important;
|
|
16407
|
+
}
|
|
16408
|
+
.db-btn-icon-only:hover:not(:disabled, .db-btn-loading) {
|
|
16409
|
+
background-color: var(--db-btn-surface-hover) !important;
|
|
16410
|
+
color: var(--db-btn-text-hover) !important;
|
|
16411
|
+
}
|
|
16412
|
+
.db-btn-icon-only:active:not(:disabled, .db-btn-loading) {
|
|
16413
|
+
background-color: var(--db-btn-surface-active) !important;
|
|
16414
|
+
color: var(--db-btn-text-active) !important;
|
|
16415
|
+
}
|
|
16416
|
+
.db-btn-icon-only:enabled:not(.db-btn-primary, .db-btn-tertiary, .db-btn-link, .db-btn-danger, :hover, :active)
|
|
16417
|
+
> .anticon {
|
|
16418
|
+
color: var(--db-btn-icon-glyph);
|
|
16419
|
+
}
|
|
16420
|
+
.db-btn-icon-only.db-btn-danger:not(:hover, :active) > .anticon {
|
|
16421
|
+
color: var(--db-btn-text);
|
|
16422
|
+
}
|
|
16423
|
+
.db-btn-icon-only.db-btn-danger:hover:not(:disabled, .db-btn-loading) {
|
|
16424
|
+
background-color: var(--db-btn-surface-hover) !important;
|
|
16425
|
+
color: var(--db-btn-text-hover) !important;
|
|
16426
|
+
}
|
|
16427
|
+
.db-btn-icon-only.db-btn-danger:active:not(:disabled, .db-btn-loading) {
|
|
16428
|
+
background-color: var(--db-btn-surface-active) !important;
|
|
16429
|
+
color: var(--db-btn-text-active) !important;
|
|
16430
|
+
}
|
|
16431
|
+
|
|
16432
|
+
/* ── 9. Disabled — base rules paint the per-variant `*-disabled` tokens (see tokens.css) ──────── */
|
|
16433
|
+
.db-btn:disabled {
|
|
16434
|
+
cursor: not-allowed;
|
|
16435
|
+
background-color: var(--db-btn-surface-disabled) !important;
|
|
16436
|
+
color: var(--db-btn-text-disabled) !important;
|
|
16437
|
+
}
|
|
16438
|
+
/* Empty disabled buttons keep a transparent border (set elsewhere), so exclude them.
|
|
16439
|
+
* `:where()` on the exclusion holds this at (0,2,0): enough to beat the base border, while still
|
|
16440
|
+
* letting a consumer's own `[disabled]` border override win on source order. */
|
|
16441
|
+
.db-btn:disabled:where(:not(.db-btn-empty)) {
|
|
16442
|
+
border-color: var(--db-btn-border-disabled) !important;
|
|
16443
|
+
}
|
|
16444
|
+
.db-btn-icon-only:disabled {
|
|
16445
|
+
border: none;
|
|
16446
|
+
}
|
|
16447
|
+
.db-btn-icon-only:disabled:hover {
|
|
16448
|
+
background-color: transparent !important;
|
|
16449
|
+
}
|
|
16450
|
+
.db-btn:disabled > .anticon {
|
|
16451
|
+
color: inherit !important;
|
|
16452
|
+
}
|
|
16453
|
+
|
|
16454
|
+
/* ── 10. Icon & content layout ───────────────────────────────────────────── */
|
|
16455
|
+
/* The leading icon renders unwrapped as the button's direct `.anticon` child (see NativeButton.tsx),
|
|
16456
|
+
* so `> .anticon` targets only a real icon glyph — a non-glyph `icon` (e.g. a Spinner) keeps its own
|
|
16457
|
+
* sizing — and out-specifies AntD's runtime-injected global `.anticon` rule. */
|
|
16458
|
+
.db-btn > .anticon,
|
|
16459
|
+
.db-btn-end-icon,
|
|
16460
|
+
.db-btn-end-icon > .anticon {
|
|
16461
|
+
display: inline-flex;
|
|
16462
|
+
align-items: center;
|
|
16463
|
+
font-size: var(--db-btn-icon-size) !important;
|
|
16464
|
+
line-height: 0;
|
|
16465
|
+
}
|
|
16466
|
+
.db-btn-small > .anticon .anticon {
|
|
16467
|
+
line-height: 0;
|
|
16468
|
+
}
|
|
16469
|
+
.db-btn > .db-btn-content > .anticon {
|
|
16470
|
+
display: inline-flex;
|
|
16471
|
+
align-items: center;
|
|
16472
|
+
line-height: 0;
|
|
16473
|
+
}
|
|
16474
|
+
.db-btn-content {
|
|
16475
|
+
display: inline-flex;
|
|
16476
|
+
align-items: center;
|
|
16477
|
+
}
|
|
16478
|
+
.db-btn > .anticon + .db-btn-content {
|
|
16479
|
+
margin-inline-start: var(--db-btn-gap) !important;
|
|
16480
|
+
}
|
|
16481
|
+
.db-btn-end-icon {
|
|
16482
|
+
margin-inline-start: var(--db-btn-end-icon-gap) !important;
|
|
16483
|
+
}
|
|
16484
|
+
.db-btn-small .db-btn-end-icon {
|
|
16485
|
+
margin-inline-start: var(--db-btn-end-icon-gap-small) !important;
|
|
16486
|
+
}
|
|
16487
|
+
.db-btn-default:not(.db-btn-danger, [href], :hover, :active, :disabled) > .anticon {
|
|
16488
|
+
color: var(--db-btn-icon-glyph);
|
|
16489
|
+
}
|
|
16490
|
+
.db-btn-default[href]:not(.db-btn-danger, :hover, :active, :disabled) .db-btn-end-icon {
|
|
16491
|
+
color: var(--db-btn-icon-glyph);
|
|
16492
|
+
}
|
|
16493
|
+
.db-btn-default:not([href], .db-btn-danger, :hover, :active, :disabled)
|
|
16494
|
+
> .db-btn-content
|
|
16495
|
+
> .db-btn-end-icon
|
|
16496
|
+
> .anticon {
|
|
16497
|
+
color: var(--db-btn-icon-glyph);
|
|
16498
|
+
}
|
|
16499
|
+
|
|
16500
|
+
/* ── 11. Loading ─────────────────────────────────────────────────────────── */
|
|
16501
|
+
.db-btn-loading {
|
|
16502
|
+
cursor: default;
|
|
16503
|
+
}
|
|
16504
|
+
.db-btn-force-icon.db-btn-loading:disabled {
|
|
16505
|
+
border-color: transparent !important;
|
|
16506
|
+
}
|
|
16507
|
+
.db-btn-spinner {
|
|
16508
|
+
color: inherit !important;
|
|
16509
|
+
pointer-events: none;
|
|
16510
|
+
}
|
|
16511
|
+
.db-btn-loading-with-icon .db-btn-content {
|
|
16512
|
+
padding-inline-start: calc(var(--db-btn-icon-size) + var(--db-btn-gap));
|
|
16513
|
+
}
|
|
16514
|
+
.db-btn-loading .db-btn-spinner {
|
|
16515
|
+
position: absolute;
|
|
16516
|
+
left: 50%;
|
|
16517
|
+
top: 50%;
|
|
16518
|
+
transform: translate(-50%, -50%);
|
|
16519
|
+
}
|
|
16520
|
+
.db-btn-loading.db-btn-icon-only .db-btn-spinner {
|
|
16521
|
+
position: static;
|
|
16522
|
+
transform: none;
|
|
16523
|
+
}
|
|
16524
|
+
|
|
16525
|
+
/* ── 12. dangerouslySetForceIconStyles ───────────────────────────────────── */
|
|
16526
|
+
.db-btn-force-icon {
|
|
16527
|
+
width: var(--db-btn-height) !important;
|
|
16528
|
+
color: var(--db-btn-icon-glyph) !important;
|
|
16529
|
+
}
|
|
16530
|
+
.db-btn-force-icon.db-btn-small {
|
|
16531
|
+
width: var(--db-btn-height-small) !important;
|
|
16532
|
+
}
|
|
16533
|
+
|
|
16534
|
+
|
|
16035
16535
|
:where(:root), :where(.du-bois-light) {
|
|
16036
16536
|
/* Shape */
|
|
16037
16537
|
--db-checkbox-border-radius: var(--db-selection-toggle-border-radius);
|
|
@@ -16040,15 +16540,15 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16040
16540
|
/* Color */
|
|
16041
16541
|
--db-checkbox-surface: var(--db-selection-toggle-surface);
|
|
16042
16542
|
--db-checkbox-surface-hover: var(--db-color-action-default-background-hover);
|
|
16043
|
-
--db-checkbox-surface-
|
|
16543
|
+
--db-checkbox-surface-active: var(--db-color-action-default-background-press);
|
|
16044
16544
|
--db-checkbox-surface-checked: var(--db-selection-toggle-surface-checked);
|
|
16045
16545
|
--db-checkbox-surface-checked-hover: var(--db-selection-toggle-surface-checked-hover);
|
|
16046
|
-
--db-checkbox-surface-checked-
|
|
16546
|
+
--db-checkbox-surface-checked-active: var(--db-selection-toggle-surface-checked-active);
|
|
16047
16547
|
--db-checkbox-surface-disabled: var(--db-selection-toggle-surface-disabled);
|
|
16048
16548
|
|
|
16049
16549
|
--db-checkbox-border: var(--db-color-action-default-border-default);
|
|
16050
16550
|
--db-checkbox-border-hover: var(--db-selection-toggle-border-hover);
|
|
16051
|
-
--db-checkbox-border-
|
|
16551
|
+
--db-checkbox-border-active: var(--db-selection-toggle-border-active);
|
|
16052
16552
|
--db-checkbox-focus-ring: var(--db-focus-ring-color);
|
|
16053
16553
|
--db-checkbox-border-disabled: var(--db-color-action-disabled-border);
|
|
16054
16554
|
|
|
@@ -16063,8 +16563,8 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16063
16563
|
--db-checkbox-size: var(--db-selection-toggle-size);
|
|
16064
16564
|
--db-checkbox-label-spacing: var(--db-selection-toggle-label-spacing);
|
|
16065
16565
|
--db-checkbox-focus-ring-width: var(--db-focus-ring-width);
|
|
16066
|
-
--db-checkbox-indeterminate-mark-width: var(--db-size-
|
|
16067
|
-
--db-checkbox-indeterminate-mark-height: calc(var(--db-size-
|
|
16566
|
+
--db-checkbox-indeterminate-mark-width: var(--db-size-2); /* 8px */
|
|
16567
|
+
--db-checkbox-indeterminate-mark-height: calc(var(--db-size-1) * 0.75); /* 3px */
|
|
16068
16568
|
|
|
16069
16569
|
/* Motion */
|
|
16070
16570
|
--db-checkbox-transition-duration: var(--db-selection-toggle-transition-duration);
|
|
@@ -16124,8 +16624,8 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16124
16624
|
}
|
|
16125
16625
|
|
|
16126
16626
|
.db-checkbox:active:has(.db-checkbox-input:not(:disabled, :checked, :indeterminate)) .db-checkbox-indicator {
|
|
16127
|
-
background-color: var(--db-checkbox-surface-
|
|
16128
|
-
border-color: var(--db-checkbox-border-
|
|
16627
|
+
background-color: var(--db-checkbox-surface-active);
|
|
16628
|
+
border-color: var(--db-checkbox-border-active);
|
|
16129
16629
|
}
|
|
16130
16630
|
|
|
16131
16631
|
/* Selected fill — checked and indeterminate share the same surface. */
|
|
@@ -16140,8 +16640,8 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16140
16640
|
}
|
|
16141
16641
|
|
|
16142
16642
|
.db-checkbox:active:has(.db-checkbox-input:is(:checked, :indeterminate):not(:disabled)) .db-checkbox-indicator {
|
|
16143
|
-
background-color: var(--db-checkbox-surface-checked-
|
|
16144
|
-
border-color: var(--db-checkbox-surface-checked-
|
|
16643
|
+
background-color: var(--db-checkbox-surface-checked-active);
|
|
16644
|
+
border-color: var(--db-checkbox-surface-checked-active);
|
|
16145
16645
|
}
|
|
16146
16646
|
|
|
16147
16647
|
/* Mark visibility. */
|
|
@@ -16291,18 +16791,20 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16291
16791
|
.db-checkbox.db-checkbox + .du-bois-dark-form-message,
|
|
16292
16792
|
.db-checkbox.db-checkbox + .du-bois-light-hint + .du-bois-light-form-message,
|
|
16293
16793
|
.db-checkbox.db-checkbox + .du-bois-dark-hint + .du-bois-dark-form-message {
|
|
16294
|
-
padding-left: var(--db-
|
|
16794
|
+
padding-left: var(--db-space-6);
|
|
16295
16795
|
margin-top: 0;
|
|
16296
16796
|
}
|
|
16297
16797
|
|
|
16298
16798
|
/* Group spacing against sibling form text — 8px gap above the group when it
|
|
16299
|
-
* follows a Hint, 8px gap above a FormMessage when it follows the group.
|
|
16799
|
+
* follows a Label or Hint, 8px gap above a FormMessage when it follows the group.
|
|
16300
16800
|
* Doubled class on the group side beats FormMessage's `&&` for the same reason. */
|
|
16801
|
+
.du-bois-light-label + .db-checkbox-group.db-checkbox-group,
|
|
16802
|
+
.du-bois-dark-label + .db-checkbox-group.db-checkbox-group,
|
|
16301
16803
|
.du-bois-light-hint + .db-checkbox-group.db-checkbox-group,
|
|
16302
16804
|
.du-bois-dark-hint + .db-checkbox-group.db-checkbox-group,
|
|
16303
16805
|
.db-checkbox-group.db-checkbox-group + .du-bois-light-form-message,
|
|
16304
16806
|
.db-checkbox-group.db-checkbox-group + .du-bois-dark-form-message {
|
|
16305
|
-
margin-top: var(--db-
|
|
16807
|
+
margin-top: var(--db-space-2);
|
|
16306
16808
|
}
|
|
16307
16809
|
|
|
16308
16810
|
/* CheckboxGroup layout. Vertical delegates to the `.db-stack` primitive; the
|
|
@@ -16327,6 +16829,228 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16327
16829
|
--db-stack-gap: var(--db-checkbox-label-spacing);
|
|
16328
16830
|
}
|
|
16329
16831
|
|
|
16832
|
+
|
|
16833
|
+
|
|
16834
|
+
:where(:root), :where(.du-bois-light) {
|
|
16835
|
+
/* Density */
|
|
16836
|
+
--db-drawer-padding-horizontal: var(--db-space-6);
|
|
16837
|
+
--db-drawer-padding-horizontal-small: var(--db-space-4);
|
|
16838
|
+
--db-drawer-content-padding-top: var(--db-space-4);
|
|
16839
|
+
--db-drawer-content-padding-top-small: var(--db-space-2);
|
|
16840
|
+
--db-drawer-footer-padding-top: var(--db-space-4);
|
|
16841
|
+
--db-drawer-footer-padding-bottom: var(--db-space-6);
|
|
16842
|
+
--db-drawer-footer-padding-bottom-small: var(--db-space-4);
|
|
16843
|
+
--db-drawer-title-margin-bottom: var(--db-space-2);
|
|
16844
|
+
--db-drawer-close-button-margin: var(--db-space-1);
|
|
16845
|
+
|
|
16846
|
+
/* Color */
|
|
16847
|
+
--db-drawer-surface: var(--db-surface-base);
|
|
16848
|
+
--db-drawer-text: var(--db-text-base);
|
|
16849
|
+
--db-drawer-border: var(--db-border-base);
|
|
16850
|
+
/* No v2 token holds the drawer scrim yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
16851
|
+
--db-drawer-overlay: var(--db-color-overlay-overlay);
|
|
16852
|
+
}
|
|
16853
|
+
|
|
16854
|
+
:where(:root), :where(.du-bois-light) {
|
|
16855
|
+
/* Elevation */
|
|
16856
|
+
--db-drawer-shadow: var(--db-elevation-high);
|
|
16857
|
+
}
|
|
16858
|
+
|
|
16859
|
+
|
|
16860
|
+
|
|
16861
|
+
|
|
16862
|
+
|
|
16863
|
+
|
|
16864
|
+
|
|
16865
|
+
|
|
16866
|
+
|
|
16867
|
+
|
|
16868
|
+
/* Component tokens for the native Icon. */
|
|
16869
|
+
:where(:root),
|
|
16870
|
+
:where(.du-bois-light) {
|
|
16871
|
+
--db-icon-size: var(--db-font-size-xl);
|
|
16872
|
+
--db-icon-color-danger: var(--db-color-text-validation-danger);
|
|
16873
|
+
--db-icon-color-warning: var(--db-color-text-validation-warning);
|
|
16874
|
+
--db-icon-color-success: var(--db-color-text-validation-success);
|
|
16875
|
+
--db-icon-ai-gradient-start: var(--db-ai-gradient-start);
|
|
16876
|
+
--db-icon-ai-gradient-mid: var(--db-ai-gradient-mid);
|
|
16877
|
+
--db-icon-ai-gradient-end: var(--db-ai-gradient-end);
|
|
16878
|
+
}
|
|
16879
|
+
|
|
16880
|
+
/* Native Icon styles. Ships through mortar.css and reads only component-tier --db-icon-* tokens.
|
|
16881
|
+
* Icon size is driven solely by the `--db-icon-size` design token: to resize an icon, set that
|
|
16882
|
+
* token in scope (default 16px in tokens.css) rather than overriding `font-size`. */
|
|
16883
|
+
.db-icon {
|
|
16884
|
+
display: inline-block;
|
|
16885
|
+
color: inherit;
|
|
16886
|
+
font-style: normal;
|
|
16887
|
+
font-size: var(--db-icon-size);
|
|
16888
|
+
line-height: 0;
|
|
16889
|
+
text-align: center;
|
|
16890
|
+
text-transform: none;
|
|
16891
|
+
vertical-align: -0.125em;
|
|
16892
|
+
text-rendering: optimizelegibility;
|
|
16893
|
+
-webkit-font-smoothing: antialiased;
|
|
16894
|
+
-moz-osx-font-smoothing: grayscale;
|
|
16895
|
+
}
|
|
16896
|
+
|
|
16897
|
+
.db-icon svg {
|
|
16898
|
+
display: inline-block;
|
|
16899
|
+
line-height: 1;
|
|
16900
|
+
}
|
|
16901
|
+
|
|
16902
|
+
/* TODO: remove once clickable-icon callsites are gone. Kept for backwards compatibility with the
|
|
16903
|
+
* AntD icon, which made icons clickable via onClick; some callsites still rely on it. Actual icons
|
|
16904
|
+
* should never carry a tabindex — a clickable icon belongs inside a button. */
|
|
16905
|
+
.db-icon[tabindex] {
|
|
16906
|
+
cursor: pointer;
|
|
16907
|
+
}
|
|
16908
|
+
|
|
16909
|
+
/* Semantic colors set `color` only; the SVG glyph paints its `fill`/`stroke` from `currentColor`,
|
|
16910
|
+
* so setting the text color recolors the icon. */
|
|
16911
|
+
.db-icon-danger {
|
|
16912
|
+
color: var(--db-icon-color-danger);
|
|
16913
|
+
}
|
|
16914
|
+
|
|
16915
|
+
.db-icon-warning {
|
|
16916
|
+
color: var(--db-icon-color-warning);
|
|
16917
|
+
}
|
|
16918
|
+
|
|
16919
|
+
.db-icon-success {
|
|
16920
|
+
color: var(--db-icon-color-success);
|
|
16921
|
+
}
|
|
16922
|
+
|
|
16923
|
+
.db-icon-ai svg * {
|
|
16924
|
+
fill: var(--db-icon-gradient);
|
|
16925
|
+
}
|
|
16926
|
+
|
|
16927
|
+
.db-icon-ai-gradient-start {
|
|
16928
|
+
stop-color: var(--db-icon-ai-gradient-start);
|
|
16929
|
+
}
|
|
16930
|
+
|
|
16931
|
+
.db-icon-ai-gradient-mid {
|
|
16932
|
+
stop-color: var(--db-icon-ai-gradient-mid);
|
|
16933
|
+
}
|
|
16934
|
+
|
|
16935
|
+
.db-icon-ai-gradient-end {
|
|
16936
|
+
stop-color: var(--db-icon-ai-gradient-end);
|
|
16937
|
+
}
|
|
16938
|
+
|
|
16939
|
+
.db-icon-gradient-definitions {
|
|
16940
|
+
position: absolute;
|
|
16941
|
+
width: 1px;
|
|
16942
|
+
height: 1px;
|
|
16943
|
+
padding: 0;
|
|
16944
|
+
margin: -1px;
|
|
16945
|
+
overflow: hidden;
|
|
16946
|
+
clip: rect(0, 0, 0, 0);
|
|
16947
|
+
white-space: nowrap;
|
|
16948
|
+
border: 0;
|
|
16949
|
+
}
|
|
16950
|
+
|
|
16951
|
+
.db-icon-spin {
|
|
16952
|
+
display: inline-block;
|
|
16953
|
+
animation: db-icon-loading-circle 1s infinite linear;
|
|
16954
|
+
}
|
|
16955
|
+
|
|
16956
|
+
@keyframes db-icon-loading-circle {
|
|
16957
|
+
100% {
|
|
16958
|
+
transform: rotate(360deg);
|
|
16959
|
+
}
|
|
16960
|
+
}
|
|
16961
|
+
|
|
16962
|
+
@media (prefers-reduced-motion: reduce) {
|
|
16963
|
+
.db-icon-spin {
|
|
16964
|
+
animation: none;
|
|
16965
|
+
}
|
|
16966
|
+
}
|
|
16967
|
+
|
|
16968
|
+
|
|
16969
|
+
|
|
16970
|
+
|
|
16971
|
+
:where(:root), :where(.du-bois-light) {
|
|
16972
|
+
/* Shape */
|
|
16973
|
+
/* Must not scale with density; no non-scaling system token holds it. TODO(FEINF-6505): adopt a v2 system token when one is added. */
|
|
16974
|
+
--db-navigation-menu-indicator-thickness: 4px;
|
|
16975
|
+
/* No system token holds this control-specific inset. TODO(FEINF-6505): adopt a v2 system token when one is added. */
|
|
16976
|
+
--db-navigation-menu-focus-ring-offset: -1px;
|
|
16977
|
+
|
|
16978
|
+
/* Color */
|
|
16979
|
+
--db-navigation-menu-indicator: var(--db-accent-surface);
|
|
16980
|
+
--db-navigation-menu-focus-ring: var(--db-focus-ring-color);
|
|
16981
|
+
--db-navigation-menu-text: var(--db-text-subtle);
|
|
16982
|
+
--db-navigation-menu-text-selected: var(--db-text-base);
|
|
16983
|
+
/* No v2 semantic for default-action link text yet; bridges on the v1 --db-color-* token. */
|
|
16984
|
+
--db-navigation-menu-text-hover: var(--db-color-action-default-text-hover);
|
|
16985
|
+
--db-navigation-menu-text-active: var(--db-color-action-default-text-press);
|
|
16986
|
+
|
|
16987
|
+
/* Density */
|
|
16988
|
+
--db-navigation-menu-item-height: var(--db-size-8);
|
|
16989
|
+
--db-navigation-menu-item-min-width: var(--db-size-6);
|
|
16990
|
+
--db-navigation-menu-link-padding-top: var(--db-space-1);
|
|
16991
|
+
--db-navigation-menu-link-padding-bottom: var(--db-space-2);
|
|
16992
|
+
--db-navigation-menu-focus-ring-width: var(--db-focus-ring-width);
|
|
16993
|
+
}
|
|
16994
|
+
|
|
16995
|
+
|
|
16996
|
+
:where(:root), :where(.du-bois-light) {
|
|
16997
|
+
/* Color */
|
|
16998
|
+
/* No v2 token holds tertiary action-text states yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
16999
|
+
--db-overflow-trigger-text: var(--db-color-action-tertiary-text-default);
|
|
17000
|
+
--db-overflow-trigger-text-hover: var(--db-color-action-tertiary-text-hover);
|
|
17001
|
+
--db-overflow-trigger-text-press: var(--db-color-action-tertiary-text-press);
|
|
17002
|
+
|
|
17003
|
+
/* Density */
|
|
17004
|
+
--db-overflow-spacing: var(--db-space-2);
|
|
17005
|
+
--db-overflow-menu-spacing: var(--db-space-1);
|
|
17006
|
+
}
|
|
17007
|
+
|
|
17008
|
+
|
|
17009
|
+
|
|
17010
|
+
/* Popover is a neutral-card member of the popup family: surface, text, border, and radius come
|
|
17011
|
+
* from --db-popup-*. Link, focus, and spacing are popover-specific and reference system tokens
|
|
17012
|
+
* directly. The popup elevation scale is light-only, so the dark shadow is re-declared below. */
|
|
17013
|
+
|
|
17014
|
+
:where(:root), :where(.du-bois-light) {
|
|
17015
|
+
/* Shape */
|
|
17016
|
+
--db-popover-border-radius: var(--db-popup-border-radius);
|
|
17017
|
+
|
|
17018
|
+
/* Color */
|
|
17019
|
+
--db-popover-surface: var(--db-popup-surface);
|
|
17020
|
+
--db-popover-text: var(--db-popup-text);
|
|
17021
|
+
--db-popover-border: var(--db-popup-border);
|
|
17022
|
+
/* No v2 token holds the tertiary link text yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17023
|
+
--db-popover-link-text: var(--db-color-action-tertiary-text-default);
|
|
17024
|
+
--db-popover-link-text-hover: var(--db-color-action-tertiary-text-hover);
|
|
17025
|
+
--db-popover-focus-ring: var(--db-focus-ring-color);
|
|
17026
|
+
|
|
17027
|
+
/* Density */
|
|
17028
|
+
--db-popover-spacing: var(--db-space-2);
|
|
17029
|
+
--db-popover-focus-ring-width: var(--db-focus-ring-width);
|
|
17030
|
+
|
|
17031
|
+
/* Elevation */
|
|
17032
|
+
--db-popover-shadow: var(--db-popup-elevation);
|
|
17033
|
+
}
|
|
17034
|
+
|
|
17035
|
+
|
|
17036
|
+
/* Declared under the theme classes too (not just :root) so the var() chain re-resolves inside a
|
|
17037
|
+
* `.du-bois-dark` subtree instead of freezing at the light values. */
|
|
17038
|
+
:where(:root), :where(.du-bois-light) {
|
|
17039
|
+
/* Shape */
|
|
17040
|
+
--db-progress-border-radius: var(--db-shape-pill);
|
|
17041
|
+
|
|
17042
|
+
/* Color */
|
|
17043
|
+
--db-progress-track: var(--db-color-progress-track);
|
|
17044
|
+
--db-progress-fill: var(--db-color-progress-fill);
|
|
17045
|
+
|
|
17046
|
+
/* Density */
|
|
17047
|
+
--db-progress-size: var(--db-size-2);
|
|
17048
|
+
|
|
17049
|
+
/* Motion */
|
|
17050
|
+
/* No v2 motion token holds this duration. TODO(FEINF-6505): adopt a v2 motion token when one is added. */
|
|
17051
|
+
--db-progress-transition-duration: 300ms;
|
|
17052
|
+
}
|
|
17053
|
+
|
|
16330
17054
|
:where(:root), :where(.du-bois-light) {
|
|
16331
17055
|
/* Shape */
|
|
16332
17056
|
--db-radio-border-radius: var(--db-radius-full);
|
|
@@ -16335,19 +17059,19 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16335
17059
|
/* Color */
|
|
16336
17060
|
--db-radio-surface: var(--db-selection-toggle-surface);
|
|
16337
17061
|
--db-radio-surface-hover: var(--db-color-action-default-background-hover);
|
|
16338
|
-
--db-radio-surface-
|
|
17062
|
+
--db-radio-surface-active: var(--db-color-action-default-background-press);
|
|
16339
17063
|
--db-radio-surface-checked: var(--db-selection-toggle-surface-checked);
|
|
16340
17064
|
--db-radio-surface-checked-hover: var(--db-selection-toggle-surface-checked-hover);
|
|
16341
|
-
--db-radio-surface-checked-
|
|
17065
|
+
--db-radio-surface-checked-active: var(--db-color-action-default-background-press);
|
|
16342
17066
|
--db-radio-surface-disabled: var(--db-selection-toggle-surface-disabled);
|
|
16343
17067
|
|
|
16344
17068
|
--db-radio-border: var(--db-color-action-default-border-default);
|
|
16345
17069
|
--db-radio-border-hover: var(--db-selection-toggle-border-hover);
|
|
16346
|
-
--db-radio-border-
|
|
17070
|
+
--db-radio-border-active: var(--db-selection-toggle-border-active);
|
|
16347
17071
|
--db-radio-border-focus: var(--db-focus-ring-color);
|
|
16348
17072
|
--db-radio-border-disabled: var(--db-color-action-disabled-border);
|
|
16349
|
-
--db-radio-border-checked-hover: var(--db-selection-toggle-border-
|
|
16350
|
-
--db-radio-border-checked-
|
|
17073
|
+
--db-radio-border-checked-hover: var(--db-selection-toggle-border-active);
|
|
17074
|
+
--db-radio-border-checked-active: var(--db-color-action-default-border-press);
|
|
16351
17075
|
--db-radio-border-unchecked-focus: var(--db-color-action-primary-background-default);
|
|
16352
17076
|
--db-radio-outline-checked-focus: var(--db-color-action-primary-background-default);
|
|
16353
17077
|
|
|
@@ -16359,7 +17083,7 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16359
17083
|
/* Density */
|
|
16360
17084
|
--db-radio-size: var(--db-selection-toggle-size);
|
|
16361
17085
|
--db-radio-label-spacing: var(--db-selection-toggle-label-spacing);
|
|
16362
|
-
--db-radio-mark-size: var(--db-size-
|
|
17086
|
+
--db-radio-mark-size: var(--db-size-1);
|
|
16363
17087
|
|
|
16364
17088
|
/* Motion */
|
|
16365
17089
|
--db-radio-transition-duration: var(--db-selection-toggle-transition-duration);
|
|
@@ -16410,8 +17134,8 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16410
17134
|
}
|
|
16411
17135
|
|
|
16412
17136
|
.db-radio:active:has(input:not(:disabled, :checked)) .db-radio-indicator {
|
|
16413
|
-
background-color: var(--db-radio-surface-
|
|
16414
|
-
border-color: var(--db-radio-border-
|
|
17137
|
+
background-color: var(--db-radio-surface-active);
|
|
17138
|
+
border-color: var(--db-radio-border-active);
|
|
16415
17139
|
}
|
|
16416
17140
|
|
|
16417
17141
|
/* Selected fill. */
|
|
@@ -16430,8 +17154,8 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16430
17154
|
/* AntD getRadioInputStyles checked active: background = actionDefaultBackgroundPress,
|
|
16431
17155
|
* borderColor = actionDefaultBorderPress (two-tone, not flat). */
|
|
16432
17156
|
.db-radio:active:has(input:checked:not(:disabled)) .db-radio-indicator {
|
|
16433
|
-
background-color: var(--db-radio-surface-checked-
|
|
16434
|
-
border-color: var(--db-radio-border-checked-
|
|
17157
|
+
background-color: var(--db-radio-surface-checked-active);
|
|
17158
|
+
border-color: var(--db-radio-border-checked-active);
|
|
16435
17159
|
}
|
|
16436
17160
|
|
|
16437
17161
|
/* Dot visibility. */
|
|
@@ -16559,7 +17283,7 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16559
17283
|
.db-radio.db-radio + .du-bois-dark-form-message,
|
|
16560
17284
|
.db-radio.db-radio + .du-bois-light-hint + .du-bois-light-form-message,
|
|
16561
17285
|
.db-radio.db-radio + .du-bois-dark-hint + .du-bois-dark-form-message {
|
|
16562
|
-
padding-inline-start: var(--db-
|
|
17286
|
+
padding-inline-start: var(--db-space-6);
|
|
16563
17287
|
margin-top: 0;
|
|
16564
17288
|
}
|
|
16565
17289
|
|
|
@@ -16575,8 +17299,8 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16575
17299
|
.db-radio-group.db-stack > .db-radio.db-radio + .du-bois-dark-form-message,
|
|
16576
17300
|
.db-radio-group.db-stack > .db-radio.db-radio + .du-bois-light-hint + .du-bois-light-form-message,
|
|
16577
17301
|
.db-radio-group.db-stack > .db-radio.db-radio + .du-bois-dark-hint + .du-bois-dark-form-message {
|
|
16578
|
-
margin-top: calc(-1 * var(--db-
|
|
16579
|
-
margin-bottom: var(--db-
|
|
17302
|
+
margin-top: calc(-1 * var(--db-space-2));
|
|
17303
|
+
margin-bottom: var(--db-space-2);
|
|
16580
17304
|
}
|
|
16581
17305
|
|
|
16582
17306
|
/* AntD `& > label:last-of-type + hint { marginTop: 0 }`: the last radio has no
|
|
@@ -16590,11 +17314,13 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16590
17314
|
margin-top: 0;
|
|
16591
17315
|
}
|
|
16592
17316
|
|
|
17317
|
+
.du-bois-light-label + .db-radio-group.db-radio-group,
|
|
17318
|
+
.du-bois-dark-label + .db-radio-group.db-radio-group,
|
|
16593
17319
|
.du-bois-light-hint + .db-radio-group.db-radio-group,
|
|
16594
17320
|
.du-bois-dark-hint + .db-radio-group.db-radio-group,
|
|
16595
17321
|
.db-radio-group.db-radio-group + .du-bois-light-form-message,
|
|
16596
17322
|
.db-radio-group.db-radio-group + .du-bois-dark-form-message {
|
|
16597
|
-
margin-top: var(--db-
|
|
17323
|
+
margin-top: var(--db-space-2);
|
|
16598
17324
|
}
|
|
16599
17325
|
|
|
16600
17326
|
/* RadioGroup layout. Vertical (the default) delegates flex-direction to the
|
|
@@ -16615,7 +17341,7 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16615
17341
|
|
|
16616
17342
|
/* AntD `& > label { paddingBottom: sm }`. */
|
|
16617
17343
|
.db-radio-group.db-stack > .db-radio {
|
|
16618
|
-
padding-bottom: var(--db-
|
|
17344
|
+
padding-bottom: var(--db-space-2);
|
|
16619
17345
|
}
|
|
16620
17346
|
|
|
16621
17347
|
/* AntD `& > label:last-of-type { paddingBottom: 0 }`. */
|
|
@@ -16631,7 +17357,7 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16631
17357
|
.db-radio-group.db-stack > .du-bois-light-radio-tile + .du-bois-dark-radio-tile,
|
|
16632
17358
|
.db-radio-group.db-stack > .du-bois-dark-radio-tile + .du-bois-light-radio-tile,
|
|
16633
17359
|
.db-radio-group.db-stack > .du-bois-dark-radio-tile + .du-bois-dark-radio-tile {
|
|
16634
|
-
margin-top: var(--db-
|
|
17360
|
+
margin-top: var(--db-space-4);
|
|
16635
17361
|
}
|
|
16636
17362
|
|
|
16637
17363
|
/* Horizontal: AntD `getHorizontalRadioGroupStyles` is a TWO-ROW grid (NOT a flex
|
|
@@ -16644,7 +17370,7 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16644
17370
|
display: grid;
|
|
16645
17371
|
grid-template-rows: [label] auto [hint] auto;
|
|
16646
17372
|
grid-auto-columns: max-content;
|
|
16647
|
-
column-gap: var(--db-
|
|
17373
|
+
column-gap: var(--db-space-4);
|
|
16648
17374
|
}
|
|
16649
17375
|
|
|
16650
17376
|
/* Equal column widths: AntD `gridAutoColumns: minmax(0, 1fr)`. */
|
|
@@ -16677,16 +17403,85 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16677
17403
|
* the group itself gets a top margin (room above the two-row grid). */
|
|
16678
17404
|
.db-radio-group--horizontal:has(> .du-bois-light-hint),
|
|
16679
17405
|
.db-radio-group--horizontal:has(> .du-bois-dark-hint) {
|
|
16680
|
-
margin-top: var(--db-
|
|
17406
|
+
margin-top: var(--db-space-2);
|
|
16681
17407
|
}
|
|
16682
17408
|
|
|
16683
17409
|
/* AntD `&& + form-message { marginTop: sm }` (horizontal): a form-message following
|
|
16684
17410
|
* the whole group is separated by sm. */
|
|
16685
17411
|
.db-radio-group--horizontal + .du-bois-light-form-message,
|
|
16686
17412
|
.db-radio-group--horizontal + .du-bois-dark-form-message {
|
|
16687
|
-
margin-top: var(--db-
|
|
17413
|
+
margin-top: var(--db-space-2);
|
|
17414
|
+
}
|
|
17415
|
+
|
|
17416
|
+
|
|
17417
|
+
|
|
17418
|
+
|
|
17419
|
+
|
|
17420
|
+
:where(:root), :where(.du-bois-light) {
|
|
17421
|
+
/* Shape */
|
|
17422
|
+
--db-slider-border-radius: var(--db-shape-pill);
|
|
17423
|
+
|
|
17424
|
+
/* Color */
|
|
17425
|
+
/* No v2 token holds the track + disabled-range surface yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17426
|
+
--db-slider-track-surface: #e8ecf0;
|
|
17427
|
+
--db-slider-range-surface-disabled: #e8ecf0;
|
|
17428
|
+
/* No v2 token holds the range fill yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17429
|
+
--db-slider-range-surface: #2272b4;
|
|
17430
|
+
|
|
17431
|
+
--db-slider-thumb-surface: var(--db-accent-surface);
|
|
17432
|
+
--db-slider-thumb-surface-hover: var(--db-accent-surface-hover);
|
|
17433
|
+
--db-slider-thumb-surface-press: var(--db-accent-surface-active);
|
|
17434
|
+
/* No v2 token holds the disabled thumb yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17435
|
+
--db-slider-thumb-surface-disabled: #d1d9e1;
|
|
17436
|
+
|
|
17437
|
+
/* Density */
|
|
17438
|
+
--db-slider-size: var(--db-size-5); /* 20px */
|
|
17439
|
+
--db-slider-thumb-size: var(--db-size-5); /* 20px */
|
|
17440
|
+
--db-slider-track-thickness: calc(var(--db-size-1) * 0.75); /* 3px */
|
|
17441
|
+
}
|
|
17442
|
+
|
|
17443
|
+
:where(:root), :where(.du-bois-light) {
|
|
17444
|
+
/* Shape */
|
|
17445
|
+
/* TODO(FEINF-6505): adopt --db-shape-container-* once a 4px container radius exists; kept on --db-radius-sm to preserve 4px. */
|
|
17446
|
+
--db-snackbar-border-radius: var(--db-radius-sm);
|
|
17447
|
+
|
|
17448
|
+
/* Density */
|
|
17449
|
+
--db-snackbar-spacing-vertical: var(--db-space-3);
|
|
17450
|
+
--db-snackbar-spacing-horizontal: var(--db-space-4);
|
|
17451
|
+
--db-snackbar-close-button-spacing: var(--db-space-2);
|
|
17452
|
+
|
|
17453
|
+
/* Color */
|
|
17454
|
+
/* No v1/v2 system token holds this theme-invariant white. TODO(FEINF-6505): adopt a v2 system token when one is added. */
|
|
17455
|
+
--db-snackbar-text: #ffffff;
|
|
17456
|
+
/* No v1/v2 system token holds these theme-invariant close-icon colors. TODO(FEINF-6505): adopt a v2 system token when one is added. */
|
|
17457
|
+
--db-snackbar-close-icon: #e8ecf0;
|
|
17458
|
+
--db-snackbar-close-icon-hover: #8acaff;
|
|
17459
|
+
--db-snackbar-close-icon-active: #bae1fc;
|
|
17460
|
+
}
|
|
17461
|
+
|
|
17462
|
+
:where(:root), :where(.du-bois-light) {
|
|
17463
|
+
/* Color */
|
|
17464
|
+
/* No v1/v2 system token holds this light/dark surface pair. TODO(FEINF-6505): adopt a v2 system token when one is added. */
|
|
17465
|
+
--db-snackbar-surface: #11171c;
|
|
17466
|
+
|
|
17467
|
+
/* Elevation */
|
|
17468
|
+
--db-snackbar-shadow: var(--db-elevation-med);
|
|
17469
|
+
}
|
|
17470
|
+
|
|
17471
|
+
/* Spacer's height is a spacing step. The size prop (xs/sm/mid/md/lg) selects one component token,
|
|
17472
|
+
* each aliasing the system space scale — theme-invariant, so a single block (no light/dark split). */
|
|
17473
|
+
|
|
17474
|
+
:where(:root), :where(.du-bois-light) {
|
|
17475
|
+
/* Density */
|
|
17476
|
+
--db-spacer-size-xs: var(--db-space-1); /* 4px */
|
|
17477
|
+
--db-spacer-size-sm: var(--db-space-2); /* 8px */
|
|
17478
|
+
--db-spacer-size-mid: var(--db-space-3); /* 12px */
|
|
17479
|
+
--db-spacer-size-md: var(--db-space-4); /* 16px */
|
|
17480
|
+
--db-spacer-size-lg: var(--db-space-6); /* 24px */
|
|
16688
17481
|
}
|
|
16689
17482
|
|
|
17483
|
+
|
|
17484
|
+
|
|
16690
17485
|
:where(:root), :where(.du-bois-light) {
|
|
16691
17486
|
/* Shape */
|
|
16692
17487
|
--db-switch-border-radius: var(--db-radius-full);
|
|
@@ -16695,20 +17490,20 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16695
17490
|
/* Color */
|
|
16696
17491
|
--db-switch-surface: var(--db-selection-toggle-surface);
|
|
16697
17492
|
--db-switch-surface-hover: var(--db-color-action-default-background-hover);
|
|
16698
|
-
--db-switch-surface-
|
|
17493
|
+
--db-switch-surface-active: var(--db-color-action-default-background-press);
|
|
16699
17494
|
--db-switch-surface-checked: var(--db-selection-toggle-surface-checked);
|
|
16700
17495
|
--db-switch-surface-checked-hover: var(--db-selection-toggle-surface-checked-hover);
|
|
16701
|
-
--db-switch-surface-checked-
|
|
17496
|
+
--db-switch-surface-checked-active: var(--db-selection-toggle-surface-checked-active);
|
|
16702
17497
|
--db-switch-surface-disabled: var(--db-selection-toggle-surface-disabled);
|
|
16703
17498
|
--db-switch-surface-checked-disabled: var(--db-color-action-disabled-text);
|
|
16704
17499
|
|
|
16705
17500
|
--db-switch-border: var(--db-color-action-default-border-default);
|
|
16706
17501
|
--db-switch-border-hover: var(--db-selection-toggle-border-hover);
|
|
16707
|
-
--db-switch-border-
|
|
17502
|
+
--db-switch-border-active: var(--db-selection-toggle-border-active);
|
|
16708
17503
|
--db-switch-border-disabled: var(--db-color-action-disabled-border);
|
|
16709
17504
|
--db-switch-border-checked: var(--db-selection-toggle-surface-checked);
|
|
16710
17505
|
--db-switch-border-checked-hover: var(--db-selection-toggle-surface-checked-hover);
|
|
16711
|
-
--db-switch-border-checked-
|
|
17506
|
+
--db-switch-border-checked-active: var(--db-selection-toggle-surface-checked-active);
|
|
16712
17507
|
--db-switch-border-focus: var(--db-selection-toggle-surface-checked);
|
|
16713
17508
|
|
|
16714
17509
|
--db-switch-thumb: var(--db-selection-toggle-surface);
|
|
@@ -16717,8 +17512,8 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16717
17512
|
--db-switch-text-disabled: var(--db-selection-toggle-text-disabled);
|
|
16718
17513
|
|
|
16719
17514
|
/* Density */
|
|
16720
|
-
--db-switch-track-width: calc(var(--db-size-
|
|
16721
|
-
--db-switch-track-height: var(--db-size-
|
|
17515
|
+
--db-switch-track-width: calc(var(--db-size-4) * 1.75); /* 28px */
|
|
17516
|
+
--db-switch-track-height: var(--db-size-4); /* 16px */
|
|
16722
17517
|
--db-switch-thumb-size: var(--db-switch-track-height);
|
|
16723
17518
|
--db-switch-label-spacing: var(--db-selection-toggle-label-spacing);
|
|
16724
17519
|
|
|
@@ -16784,8 +17579,8 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16784
17579
|
}
|
|
16785
17580
|
|
|
16786
17581
|
.db-switch:active input:not(:disabled):not(:checked) {
|
|
16787
|
-
background-color: var(--db-switch-surface-
|
|
16788
|
-
border-color: var(--db-switch-border-
|
|
17582
|
+
background-color: var(--db-switch-surface-active);
|
|
17583
|
+
border-color: var(--db-switch-border-active);
|
|
16789
17584
|
}
|
|
16790
17585
|
|
|
16791
17586
|
.db-switch input:checked {
|
|
@@ -16799,8 +17594,8 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16799
17594
|
}
|
|
16800
17595
|
|
|
16801
17596
|
.db-switch:active input:checked:not(:disabled) {
|
|
16802
|
-
background-color: var(--db-switch-surface-checked-
|
|
16803
|
-
border-color: var(--db-switch-border-checked-
|
|
17597
|
+
background-color: var(--db-switch-surface-checked-active);
|
|
17598
|
+
border-color: var(--db-switch-border-checked-active);
|
|
16804
17599
|
}
|
|
16805
17600
|
|
|
16806
17601
|
.db-switch input:checked::before {
|
|
@@ -16867,21 +17662,126 @@ span.du-bois-light-typography-ellipsis-single-line {
|
|
|
16867
17662
|
}
|
|
16868
17663
|
|
|
16869
17664
|
/* Indent a following hint/message past the track. The class is doubled to out-specify FormMessage's
|
|
16870
|
-
* own margin rule.
|
|
16871
|
-
|
|
16872
|
-
|
|
17665
|
+
* own margin rule. Each rule's key (rightmost) selector is a single class, not a multi-item :is(),
|
|
17666
|
+
* so Chromium can hash-reject it instead of attempting the match against every element on every
|
|
17667
|
+
* recalc (the leading/middle :is() groups aren't the key selector, so they're left as-is). */
|
|
17668
|
+
:is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper) + .du-bois-light-hint, :is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper) + .du-bois-dark-hint, :is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper) + .du-bois-light-form-message, :is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper) + .du-bois-dark-form-message, :is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper)
|
|
17669
|
+
+ :is(.du-bois-light-hint, .du-bois-dark-hint)
|
|
17670
|
+
+ .du-bois-light-form-message, :is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper)
|
|
16873
17671
|
+ :is(.du-bois-light-hint, .du-bois-dark-hint)
|
|
16874
|
-
+
|
|
16875
|
-
padding-inline-start: calc(var(--db-
|
|
17672
|
+
+ .du-bois-dark-form-message {
|
|
17673
|
+
padding-inline-start: calc(var(--db-space-2) + var(--db-switch-track-width));
|
|
16876
17674
|
}
|
|
16877
17675
|
|
|
16878
|
-
:is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper)
|
|
16879
|
-
+ :is(.du-bois-light-form-message, .du-bois-dark-form-message), :is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper)
|
|
17676
|
+
:is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper) + .du-bois-light-form-message, :is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper) + .du-bois-dark-form-message, :is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper)
|
|
16880
17677
|
+ :is(.du-bois-light-hint, .du-bois-dark-hint)
|
|
16881
|
-
+
|
|
17678
|
+
+ .du-bois-light-form-message, :is(.db-switch.db-switch, .db-switch-wrapper.db-switch-wrapper)
|
|
17679
|
+
+ :is(.du-bois-light-hint, .du-bois-dark-hint)
|
|
17680
|
+
+ .du-bois-dark-form-message {
|
|
16882
17681
|
margin-top: 0;
|
|
16883
17682
|
}
|
|
16884
17683
|
|
|
17684
|
+
/* Component tokens for Tabs (no family). Re-declared under the theme classes, not only :root, so the
|
|
17685
|
+
* var() chain re-resolves inside a .du-bois-dark subtree instead of freezing at the light value. */
|
|
17686
|
+
:where(:root), :where(.du-bois-light) {
|
|
17687
|
+
/* ── Density ──────────────────────────────────────────────────────────── */
|
|
17688
|
+
--db-tabs-height: var(--db-size-8);
|
|
17689
|
+
--db-tabs-trigger-min-width: var(--db-size-6);
|
|
17690
|
+
--db-tabs-trigger-min-width-closable: var(--db-size-10);
|
|
17691
|
+
--db-tabs-list-margin-bottom: var(--db-space-4);
|
|
17692
|
+
--db-tabs-trigger-gap: var(--db-space-4);
|
|
17693
|
+
--db-tabs-trigger-padding-top: var(--db-space-1);
|
|
17694
|
+
--db-tabs-trigger-padding-bottom: var(--db-space-2);
|
|
17695
|
+
--db-tabs-close-icon-gap: var(--db-space-1);
|
|
17696
|
+
--db-tabs-add-button-margin-top: var(--db-space-0-5);
|
|
17697
|
+
/* No 1.5-unit space step exists; synthesize 6px from the nearest. TODO: use a direct step if one lands. */
|
|
17698
|
+
--db-tabs-add-button-margin-bottom: calc(var(--db-space-1) * 1.5);
|
|
17699
|
+
|
|
17700
|
+
/* ── Shape ────────────────────────────────────────────────────────────── */
|
|
17701
|
+
--db-tabs-scrollbar-radius: var(--db-shape-control);
|
|
17702
|
+
--db-tabs-focus-ring-width: var(--db-focus-ring-width);
|
|
17703
|
+
|
|
17704
|
+
/* ── Typography ───────────────────────────────────────────────────────── */
|
|
17705
|
+
--db-tabs-font-size: var(--db-font-size-base);
|
|
17706
|
+
--db-tabs-font-weight: var(--db-font-weight-semibold);
|
|
17707
|
+
/* No v2 token holds the tab line-height yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17708
|
+
--db-tabs-line-height: 1.25rem;
|
|
17709
|
+
|
|
17710
|
+
/* ── Color ────────────────────────────────────────────────────────────── */
|
|
17711
|
+
/* No v2 token holds the tab text / hover / press / active / disabled colors yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17712
|
+
--db-tabs-text: var(--db-color-text-secondary);
|
|
17713
|
+
--db-tabs-text-hover: var(--db-color-action-default-text-hover);
|
|
17714
|
+
--db-tabs-text-press: var(--db-color-action-default-text-press);
|
|
17715
|
+
--db-tabs-text-active: var(--db-color-text-primary);
|
|
17716
|
+
--db-tabs-text-disabled: var(--db-color-action-disabled-text);
|
|
17717
|
+
/* No v2 token holds the tab panel content text color yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17718
|
+
--db-tabs-content-text: var(--db-color-text-primary);
|
|
17719
|
+
/* No v2 token holds the active-tab underline yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17720
|
+
--db-tabs-indicator: var(--db-color-action-primary-background-default);
|
|
17721
|
+
/* No v2 token holds the list divider yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17722
|
+
--db-tabs-border: var(--db-color-action-default-border-default);
|
|
17723
|
+
/* No v2 token holds the focus ring color yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17724
|
+
--db-tabs-focus-ring: var(--db-color-action-default-border-focus);
|
|
17725
|
+
}
|
|
17726
|
+
|
|
17727
|
+
/* No v2 token holds the scrollbar thumb yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17728
|
+
:where(:root), :where(.du-bois-light) {
|
|
17729
|
+
--db-tabs-scrollbar-thumb: rgba(17, 23, 28, 0.2);
|
|
17730
|
+
--db-tabs-scrollbar-thumb-hover: rgba(17, 23, 28, 0.3);
|
|
17731
|
+
}
|
|
17732
|
+
|
|
17733
|
+
|
|
17734
|
+
|
|
17735
|
+
:where(:root), :where(.du-bois-light) {
|
|
17736
|
+
/* Shape */
|
|
17737
|
+
--db-toolbar-border-radius: var(--db-shape-control);
|
|
17738
|
+
|
|
17739
|
+
/* Color */
|
|
17740
|
+
--db-toolbar-surface: var(--db-surface-subtle);
|
|
17741
|
+
--db-toolbar-border: var(--db-border-base);
|
|
17742
|
+
--db-toolbar-separator-surface: var(--db-border-base);
|
|
17743
|
+
--db-toolbar-toggle-item-text: var(--db-text-base);
|
|
17744
|
+
/* No v2 token holds the toggle hover / press text yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
|
|
17745
|
+
--db-toolbar-toggle-item-text-hover: var(--db-color-action-default-text-hover);
|
|
17746
|
+
--db-toolbar-toggle-item-text-press: var(--db-color-action-default-text-press);
|
|
17747
|
+
--db-toolbar-shadow: var(--db-elevation-med);
|
|
17748
|
+
|
|
17749
|
+
/* Density */
|
|
17750
|
+
--db-toolbar-gap: var(--db-space-4);
|
|
17751
|
+
--db-toolbar-spacing: var(--db-space-2);
|
|
17752
|
+
}
|
|
17753
|
+
|
|
17754
|
+
/* Tooltip renders an inverted surface (dark chip in light mode, light chip in dark mode), so it does
|
|
17755
|
+
* not draw from the popover family's neutral surface. Surface/text reference the v1 tooltip
|
|
17756
|
+
* primitives from tokens-groups until a v2 semantic exists. */
|
|
17757
|
+
|
|
17758
|
+
:where(:root), :where(.du-bois-light) {
|
|
17759
|
+
/* Shape */
|
|
17760
|
+
--db-tooltip-border-radius: var(--db-radius-sm);
|
|
17761
|
+
|
|
17762
|
+
/* Density */
|
|
17763
|
+
--db-tooltip-spacing-vertical: var(--db-space-1);
|
|
17764
|
+
--db-tooltip-spacing-horizontal: var(--db-space-2);
|
|
17765
|
+
|
|
17766
|
+
/* Typography */
|
|
17767
|
+
--db-tooltip-font-size: var(--db-font-size-base);
|
|
17768
|
+
--db-tooltip-font-weight: var(--db-font-weight-normal);
|
|
17769
|
+
}
|
|
17770
|
+
|
|
17771
|
+
:where(:root), :where(.du-bois-light) {
|
|
17772
|
+
/* Color */
|
|
17773
|
+
--db-tooltip-surface: var(--db-color-tooltip-background-tooltip);
|
|
17774
|
+
--db-tooltip-text: var(--db-color-tooltip-text-tooltip);
|
|
17775
|
+
/* v1 blue primitives, held as literals until a v2 link-on-tooltip semantic exists. */
|
|
17776
|
+
--db-tooltip-link-text: #4299e0; /* blue500 */
|
|
17777
|
+
--db-tooltip-link-text-hover: #8acaff; /* blue400 */
|
|
17778
|
+
--db-tooltip-link-text-active: #bae1fc; /* blue300 */
|
|
17779
|
+
|
|
17780
|
+
/* Elevation */
|
|
17781
|
+
--db-tooltip-shadow: var(--db-elevation-med);
|
|
17782
|
+
}
|
|
17783
|
+
|
|
17784
|
+
|
|
16885
17785
|
|
|
16886
17786
|
:where(.du-bois-light-btn-icon-only) > :where(.anticon),
|
|
16887
17787
|
:where(.du-bois-light-btn-icon-only) > :where(.du-bois-light-btn-loading-icon) {
|