@ecopages/radiant-themes 0.2.1 → 0.2.3
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/README.md +27 -15
- package/dist/compiled/themes/cloudflare/compact.css +40 -12
- package/dist/compiled/themes/cloudflare.css +40 -12
- package/dist/compiled/themes/github/compact.css +264 -67
- package/dist/compiled/themes/github.css +264 -67
- package/dist/compiled/themes/high-contrast/compact.css +88 -5
- package/dist/compiled/themes/high-contrast.css +88 -5
- package/dist/compiled/themes/macos/compact.css +679 -294
- package/dist/compiled/themes/macos-classic/compact.css +197 -25
- package/dist/compiled/themes/macos-classic.css +197 -25
- package/dist/compiled/themes/macos.css +679 -294
- package/dist/compiled/themes/material/compact.css +447 -132
- package/dist/compiled/themes/material.css +447 -132
- package/dist/compiled/themes/vercel/compact.css +104 -62
- package/dist/compiled/themes/vercel.css +104 -62
- package/dist/compiled/themes/vscode/compact.css +255 -40
- package/dist/compiled/themes/vscode.css +255 -40
- package/dist/compiled/themes/windows95/compact.css +260 -22
- package/dist/compiled/themes/windows95.css +260 -22
- package/dist/tokens/colors/github.css +32 -0
- package/dist/tokens/colors/macos.css +65 -25
- package/dist/tokens/colors/material.css +61 -20
- package/dist/tokens/colors/vercel.css +43 -39
- package/dist/tokens/colors/vscode.css +48 -4
- package/dist/tokens/colors/windows95.css +10 -5
- package/dist/tokens/components/cloudflare.css +55 -5
- package/dist/tokens/components/github.css +258 -40
- package/dist/tokens/components/high-contrast.css +93 -5
- package/dist/tokens/components/macos-classic.css +262 -24
- package/dist/tokens/components/macos.css +542 -106
- package/dist/tokens/components/material.css +354 -25
- package/dist/tokens/components/vercel.css +77 -15
- package/dist/tokens/components/vscode.css +248 -27
- package/dist/tokens/components/windows95.css +304 -19
- package/dist/tokens/roles/github.css +12 -12
- package/dist/tokens/roles/macos.css +97 -93
- package/dist/tokens/roles/material.css +65 -65
- package/dist/tokens/roles/vercel.css +3 -3
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -45,40 +45,52 @@ border opacity inputs. The docs tuner shows the six values and produces copyable
|
|
|
45
45
|
Radiant Default; branded themes keep their own values.
|
|
46
46
|
|
|
47
47
|
High Contrast targets at least 7:1 contrast for published semantic text pairs in both modes and uses prominent focus
|
|
48
|
-
indicators. Its control surfaces, including switch tracks and thumbs, use square corners
|
|
48
|
+
indicators. Its control surfaces, including switch tracks and thumbs, use square corners, radios stay round with a checked
|
|
49
|
+
dot, and muted text stays above 7:1. Radiant UI's shared foundation
|
|
49
50
|
supports reduced motion, increased contrast, visible keyboard focus, and Windows forced colors. Verify non-text
|
|
50
51
|
boundaries and application content after custom overrides.
|
|
51
52
|
|
|
52
53
|
Windows 95 draws every control with the two-tone 2px bevel: gray push buttons with a black frame on the default
|
|
53
54
|
action, sunken white fields, check boxes, and radio wells, raised property tabs joined to their page, navy title bars,
|
|
54
|
-
|
|
55
|
+
navy selection, flat menu bars with navy menu highlights, trackbars with a sunken channel and raised pointer,
|
|
56
|
+
drop-down lists and combo boxes with a raised arrow button, sunken list boxes and tree views with dotted lines and
|
|
57
|
+
plus/minus boxes, and pale yellow tooltips. Mac OS Classic is Mac OS 9 Platinum, built from the Mac OS 8 Human Interface Guidelines and the Appearance Manager's
|
|
55
58
|
default theme: the seven system greys `#eeeeee` to `#202020`, grey push buttons with a black outline and a two-pixel
|
|
56
59
|
bevel, a three-layer ring around the default button, 12px bevelled check boxes, shaded radio spheres, sunken white
|
|
57
60
|
fields, trapezoid tabs that merge into a black-framed page, and 1px striped title bars. Selection and focus use the
|
|
58
|
-
default `#6666cc` accent.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
default `#6666cc` accent. Menus and the menu bar highlight items in that accent, list views are black-framed white
|
|
62
|
+
wells with bevelled column headers, tooltips are outlined help balloons, and disclosures use the Platinum triangle. Both
|
|
63
|
+
dark modes keep the same bevel structure on darker faces and fields, since neither system shipped one. macOS follows Sonoma AppKit:
|
|
64
|
+
the SF Pro system font at 13px, 6px push buttons outlined by a hairline shadow, accent-filled default buttons, check
|
|
65
|
+
boxes, and radio buttons, pop-up buttons with an accent arrow well, segmented tabs centered on a group box's top edge, white
|
|
66
|
+
slider knobs, translucent menus and popovers, and accent row selection with white text. Destructive buttons use red
|
|
67
|
+
text, as AppKit alerts do. Windows 95 also provides a full-size dithered scrollbar with raised arrow buttons and a bevelled thumb;
|
|
62
68
|
Mac OS Classic provides Platinum's grey bevelled track, end-positioned arrow buttons, and striped blue scroll box.
|
|
63
69
|
Chrome and Safari receive the detailed WebKit scrollbar treatment; Firefox receives the standard `scrollbar-width` and
|
|
64
70
|
`scrollbar-color` fallback, whose native API does not expose classic arrow buttons, bevels, or stripe images.
|
|
65
|
-
Material Design uses
|
|
66
|
-
|
|
71
|
+
Material Design uses the Material 3 baseline scheme: full-radius
|
|
72
|
+
buttons, 4px outlined fields and menus, 8px chips, 28px dialogs, tonal surface-container overlays, inverse-surface
|
|
73
|
+
tooltips and toasts, and a 3px secondary focus indicator. These are original implementations written with Radiant semantic roles, Tailwind `@apply`, and catalog
|
|
67
74
|
selectors; they do not copy third-party CSS.
|
|
68
75
|
|
|
69
76
|
The Cloudflare theme leads with Cloudflare orange on restrained neutral layers inspired by Cloudflare Kumo. Its
|
|
70
77
|
semantic primary role uses the same contrast-safe orange `#cc3a00` in both modes. Filled primary buttons use that
|
|
71
78
|
orange with white text in both modes. Links and focus stay blue, and warnings use a yellow amber that stays distinct
|
|
72
|
-
from the primary.
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
from the primary. Chosen options, menu items, and active navigation use Kumo's neutral grey, so they no longer use orange;
|
|
80
|
+
breadcrumb links are blue, dark mode uses a brighter orange for orange text, and controls are 26, 36, and 40px tall.
|
|
81
|
+
GitHub maps Primer's functional roles: green is limited to the primary button, the meter, and success states, blue marks links, focus, and
|
|
82
|
+
selected, checked, or current states, the selected tab uses Primer's coral underline, and secondary actions use
|
|
83
|
+
Primer's grey default button.
|
|
75
84
|
|
|
76
85
|
The Vercel theme uses Background 2 for the light canvas and Background 1 for primary surfaces. Its component colors
|
|
77
86
|
drive hover and active fills, Colors 4–6 drive default, hover, and active borders, and blue stays focused on links and
|
|
78
|
-
keyboard focus. Control boundaries are strengthened for visibility. VS Code
|
|
79
|
-
with
|
|
80
|
-
|
|
81
|
-
|
|
87
|
+
keyboard focus. Control boundaries are strengthened for visibility. VS Code follows Light Modern and Dark Modern: 26px
|
|
88
|
+
controls with 2px corners, filled buttons in `#005fb8` (light) or `#0078d4` (dark) with white text, grey secondary
|
|
89
|
+
buttons for the outline variant, a 1px blue focus outline, blue menu highlights, editor-style boxed tabs with a blue top
|
|
90
|
+
border, and see-through square scrollbars. Button treatments vary by theme: Cloudflare uses a
|
|
91
|
+
contrast-safe orange primary fill, Cloudflare and Vercel use saturated fills with white text for dark-mode
|
|
92
|
+
destructive buttons, and GitHub uses Primer's danger button: red text on the default button face, filling red on
|
|
93
|
+
hover. Other variants follow each theme's semantic roles. These palettes adapt product cues to
|
|
82
94
|
Radiant UI roles without reproducing the products pixel for pixel.
|
|
83
95
|
|
|
84
96
|
## Design references
|
|
@@ -27,8 +27,6 @@
|
|
|
27
27
|
--font-weight-medium: var(--weight-medium);
|
|
28
28
|
--opacity-disabled: var(--opacity-disabled);
|
|
29
29
|
--opacity-muted: var(--opacity-muted);
|
|
30
|
-
--color-primary-container: var(--primary-container);
|
|
31
|
-
--color-on-primary-container: var(--on-primary-container);
|
|
32
30
|
--color-secondary: var(--secondary);
|
|
33
31
|
--color-on-secondary: var(--on-secondary);
|
|
34
32
|
--color-surface: var(--surface);
|
|
@@ -603,6 +601,9 @@
|
|
|
603
601
|
--border-radius-3xl: 1.25rem;
|
|
604
602
|
--radius-control: var(--border-radius-lg);
|
|
605
603
|
--radius-container: var(--border-radius-xl);
|
|
604
|
+
--size-control-sm: 1.625rem;
|
|
605
|
+
--size-control-md: 2.25rem;
|
|
606
|
+
--size-control-lg: 2.5rem;
|
|
606
607
|
}
|
|
607
608
|
@layer components {
|
|
608
609
|
:root .rui-button--filled {
|
|
@@ -683,9 +684,12 @@
|
|
|
683
684
|
border-color: var(--rui-control-border-color);
|
|
684
685
|
}
|
|
685
686
|
:root .rui-dialog__surface,
|
|
686
|
-
:root .rui-popover-
|
|
687
|
+
:root .rui-popover:where(:not(.rui-popover--listbox)),
|
|
687
688
|
:root .rui-hover-card__content,
|
|
688
689
|
:root .rui-select__listbox,
|
|
690
|
+
:root .rui-combobox__listbox,
|
|
691
|
+
:root .rui-menu-button__menu,
|
|
692
|
+
:root .rui-menubar__menu,
|
|
689
693
|
:root .rui-calendar {
|
|
690
694
|
border-radius: var(--radius-container);
|
|
691
695
|
border-style: var(--tw-border-style);
|
|
@@ -694,6 +698,14 @@
|
|
|
694
698
|
box-shadow: 0 0 0 1px var(--color-cloudflare-shadow-edge),
|
|
695
699
|
0 4px 12px var(--color-cloudflare-shadow-drop);
|
|
696
700
|
}
|
|
701
|
+
:root .rui-menu-button__menu,
|
|
702
|
+
:root .rui-menubar__menu {
|
|
703
|
+
--rui-menu-item-hover: var(--color-cloudflare-tint);
|
|
704
|
+
}
|
|
705
|
+
:root .rui-select__listbox .rui-listbox,
|
|
706
|
+
:root .rui-combobox__listbox .rui-listbox {
|
|
707
|
+
background-color: transparent;
|
|
708
|
+
}
|
|
697
709
|
:root rui-tabs[variant='boxed'] {
|
|
698
710
|
border-radius: var(--radius-container);
|
|
699
711
|
border-style: var(--tw-border-style);
|
|
@@ -722,25 +734,41 @@
|
|
|
722
734
|
border-bottom-color: var(--primary);
|
|
723
735
|
}
|
|
724
736
|
:root .rui-listbox__option[aria-selected='true'],
|
|
737
|
+
:root .rui-listbox__option[aria-selected='true']:focus-visible,
|
|
725
738
|
:root .rui-menu-button__item[aria-checked='true'],
|
|
726
|
-
:root .rui-sidebar__menu-button
|
|
727
|
-
|
|
728
|
-
|
|
739
|
+
:root .rui-sidebar__menu-button[aria-current='page'],
|
|
740
|
+
:root .rui-sidebar__menu-button--active,
|
|
741
|
+
:root .rui-tree__node[aria-selected='true'],
|
|
742
|
+
:root .rui-treegrid__cell[aria-selected='true'] {
|
|
743
|
+
background-color: var(--color-cloudflare-tint);
|
|
744
|
+
background-image: none;
|
|
745
|
+
color: var(--color-cloudflare-fg);
|
|
746
|
+
}
|
|
747
|
+
:root .rui-listbox__option[aria-selected='true'][data-active]:not([aria-disabled='true']) {
|
|
748
|
+
--tw-ring-color: var(--rui-control-border-color);
|
|
749
|
+
}
|
|
750
|
+
:root .rui-listbox__option[aria-selected='true'] .rui-listbox__option-indicator {
|
|
751
|
+
color: var(--color-cloudflare-fg);
|
|
752
|
+
}
|
|
753
|
+
:root .rui-breadcrumb__link {
|
|
754
|
+
color: var(--link);
|
|
755
|
+
}
|
|
756
|
+
:root.dark .rui-heading__eyebrow,
|
|
757
|
+
:root.dark .rui-toc__link--active,
|
|
758
|
+
:root.dark .rui-calendar__today,
|
|
759
|
+
:root.dark .rui-feed__rating-stars {
|
|
760
|
+
color: var(--color-cloudflare-orange-bright);
|
|
729
761
|
}
|
|
730
762
|
:root .rui-alert {
|
|
731
763
|
border-radius: var(--radius-control);
|
|
732
764
|
--tw-shadow: 0 0 #0000;
|
|
733
765
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
734
766
|
}
|
|
735
|
-
:root .rui-
|
|
767
|
+
:root .rui-toast {
|
|
736
768
|
border-radius: var(--radius-control);
|
|
737
|
-
border-style: var(--tw-border-style);
|
|
738
|
-
border-width: 1px;
|
|
739
|
-
border-color: var(--color-border);
|
|
740
|
-
background-color: var(--color-surface);
|
|
741
|
-
color: var(--color-on-surface);
|
|
742
769
|
--tw-shadow: 0 0 #0000;
|
|
743
770
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
771
|
+
background-image: none;
|
|
744
772
|
}
|
|
745
773
|
:root .rui-separator,
|
|
746
774
|
:root .rui-sidebar__separator {
|
|
@@ -27,8 +27,6 @@
|
|
|
27
27
|
--font-weight-medium: var(--weight-medium);
|
|
28
28
|
--opacity-disabled: var(--opacity-disabled);
|
|
29
29
|
--opacity-muted: var(--opacity-muted);
|
|
30
|
-
--color-primary-container: var(--primary-container);
|
|
31
|
-
--color-on-primary-container: var(--on-primary-container);
|
|
32
30
|
--color-secondary: var(--secondary);
|
|
33
31
|
--color-on-secondary: var(--on-secondary);
|
|
34
32
|
--color-surface: var(--surface);
|
|
@@ -603,6 +601,9 @@
|
|
|
603
601
|
--border-radius-3xl: 1.25rem;
|
|
604
602
|
--radius-control: var(--border-radius-lg);
|
|
605
603
|
--radius-container: var(--border-radius-xl);
|
|
604
|
+
--size-control-sm: 1.625rem;
|
|
605
|
+
--size-control-md: 2.25rem;
|
|
606
|
+
--size-control-lg: 2.5rem;
|
|
606
607
|
}
|
|
607
608
|
@layer components {
|
|
608
609
|
:root .rui-button--filled {
|
|
@@ -683,9 +684,12 @@
|
|
|
683
684
|
border-color: var(--rui-control-border-color);
|
|
684
685
|
}
|
|
685
686
|
:root .rui-dialog__surface,
|
|
686
|
-
:root .rui-popover-
|
|
687
|
+
:root .rui-popover:where(:not(.rui-popover--listbox)),
|
|
687
688
|
:root .rui-hover-card__content,
|
|
688
689
|
:root .rui-select__listbox,
|
|
690
|
+
:root .rui-combobox__listbox,
|
|
691
|
+
:root .rui-menu-button__menu,
|
|
692
|
+
:root .rui-menubar__menu,
|
|
689
693
|
:root .rui-calendar {
|
|
690
694
|
border-radius: var(--radius-container);
|
|
691
695
|
border-style: var(--tw-border-style);
|
|
@@ -694,6 +698,14 @@
|
|
|
694
698
|
box-shadow: 0 0 0 1px var(--color-cloudflare-shadow-edge),
|
|
695
699
|
0 4px 12px var(--color-cloudflare-shadow-drop);
|
|
696
700
|
}
|
|
701
|
+
:root .rui-menu-button__menu,
|
|
702
|
+
:root .rui-menubar__menu {
|
|
703
|
+
--rui-menu-item-hover: var(--color-cloudflare-tint);
|
|
704
|
+
}
|
|
705
|
+
:root .rui-select__listbox .rui-listbox,
|
|
706
|
+
:root .rui-combobox__listbox .rui-listbox {
|
|
707
|
+
background-color: transparent;
|
|
708
|
+
}
|
|
697
709
|
:root rui-tabs[variant='boxed'] {
|
|
698
710
|
border-radius: var(--radius-container);
|
|
699
711
|
border-style: var(--tw-border-style);
|
|
@@ -722,25 +734,41 @@
|
|
|
722
734
|
border-bottom-color: var(--primary);
|
|
723
735
|
}
|
|
724
736
|
:root .rui-listbox__option[aria-selected='true'],
|
|
737
|
+
:root .rui-listbox__option[aria-selected='true']:focus-visible,
|
|
725
738
|
:root .rui-menu-button__item[aria-checked='true'],
|
|
726
|
-
:root .rui-sidebar__menu-button
|
|
727
|
-
|
|
728
|
-
|
|
739
|
+
:root .rui-sidebar__menu-button[aria-current='page'],
|
|
740
|
+
:root .rui-sidebar__menu-button--active,
|
|
741
|
+
:root .rui-tree__node[aria-selected='true'],
|
|
742
|
+
:root .rui-treegrid__cell[aria-selected='true'] {
|
|
743
|
+
background-color: var(--color-cloudflare-tint);
|
|
744
|
+
background-image: none;
|
|
745
|
+
color: var(--color-cloudflare-fg);
|
|
746
|
+
}
|
|
747
|
+
:root .rui-listbox__option[aria-selected='true'][data-active]:not([aria-disabled='true']) {
|
|
748
|
+
--tw-ring-color: var(--rui-control-border-color);
|
|
749
|
+
}
|
|
750
|
+
:root .rui-listbox__option[aria-selected='true'] .rui-listbox__option-indicator {
|
|
751
|
+
color: var(--color-cloudflare-fg);
|
|
752
|
+
}
|
|
753
|
+
:root .rui-breadcrumb__link {
|
|
754
|
+
color: var(--link);
|
|
755
|
+
}
|
|
756
|
+
:root.dark .rui-heading__eyebrow,
|
|
757
|
+
:root.dark .rui-toc__link--active,
|
|
758
|
+
:root.dark .rui-calendar__today,
|
|
759
|
+
:root.dark .rui-feed__rating-stars {
|
|
760
|
+
color: var(--color-cloudflare-orange-bright);
|
|
729
761
|
}
|
|
730
762
|
:root .rui-alert {
|
|
731
763
|
border-radius: var(--radius-control);
|
|
732
764
|
--tw-shadow: 0 0 #0000;
|
|
733
765
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
734
766
|
}
|
|
735
|
-
:root .rui-
|
|
767
|
+
:root .rui-toast {
|
|
736
768
|
border-radius: var(--radius-control);
|
|
737
|
-
border-style: var(--tw-border-style);
|
|
738
|
-
border-width: 1px;
|
|
739
|
-
border-color: var(--color-border);
|
|
740
|
-
background-color: var(--color-surface);
|
|
741
|
-
color: var(--color-on-surface);
|
|
742
769
|
--tw-shadow: 0 0 #0000;
|
|
743
770
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
771
|
+
background-image: none;
|
|
744
772
|
}
|
|
745
773
|
:root .rui-separator,
|
|
746
774
|
:root .rui-sidebar__separator {
|