@scattered-light/loomiere-base-ui 0.1.1 → 0.3.0

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.
Files changed (128) hide show
  1. package/README.md +10 -1
  2. package/dist/design-system/components/Accordion/README.md +97 -0
  3. package/dist/design-system/components/Accordion/preview.html +19 -0
  4. package/dist/design-system/components/AlertDialog/README.md +52 -0
  5. package/dist/design-system/components/AlertDialog/preview.html +19 -0
  6. package/dist/design-system/components/Autocomplete/README.md +68 -0
  7. package/dist/design-system/components/Autocomplete/preview.html +19 -0
  8. package/dist/design-system/components/Avatar/README.md +39 -0
  9. package/dist/design-system/components/Avatar/preview.html +19 -0
  10. package/dist/design-system/components/Button/README.md +27 -0
  11. package/dist/design-system/components/Button/preview.html +23 -0
  12. package/dist/design-system/components/Checkbox/README.md +39 -0
  13. package/dist/design-system/components/Checkbox/preview.html +19 -0
  14. package/dist/design-system/components/CheckboxGroup/README.md +56 -0
  15. package/dist/design-system/components/CheckboxGroup/preview.html +19 -0
  16. package/dist/design-system/components/Collapsible/README.md +48 -0
  17. package/dist/design-system/components/Collapsible/preview.html +19 -0
  18. package/dist/design-system/components/Combobox/README.md +105 -0
  19. package/dist/design-system/components/Combobox/preview.html +19 -0
  20. package/dist/design-system/components/ContextMenu/README.md +70 -0
  21. package/dist/design-system/components/ContextMenu/preview.html +19 -0
  22. package/dist/design-system/components/Dialog/README.md +62 -0
  23. package/dist/design-system/components/Dialog/preview.html +19 -0
  24. package/dist/design-system/components/Drawer/README.md +32 -0
  25. package/dist/design-system/components/Drawer/preview.html +19 -0
  26. package/dist/design-system/components/Field/README.md +41 -0
  27. package/dist/design-system/components/Field/preview.html +19 -0
  28. package/dist/design-system/components/Fieldset/README.md +45 -0
  29. package/dist/design-system/components/Fieldset/preview.html +19 -0
  30. package/dist/design-system/components/Form/README.md +57 -0
  31. package/dist/design-system/components/Form/preview.html +19 -0
  32. package/dist/design-system/components/IconButton/README.md +31 -0
  33. package/dist/design-system/components/IconButton/preview.html +19 -0
  34. package/dist/design-system/components/Input/README.md +38 -0
  35. package/dist/design-system/components/Input/preview.html +19 -0
  36. package/dist/design-system/components/Menu/README.md +58 -0
  37. package/dist/design-system/components/Menu/preview.html +19 -0
  38. package/dist/design-system/components/Menubar/README.md +105 -0
  39. package/dist/design-system/components/Menubar/preview.html +19 -0
  40. package/dist/design-system/components/Meter/README.md +43 -0
  41. package/dist/design-system/components/Meter/preview.html +19 -0
  42. package/dist/design-system/components/NavigationMenu/README.md +148 -0
  43. package/dist/design-system/components/NavigationMenu/preview.html +19 -0
  44. package/dist/design-system/components/NumberField/README.md +58 -0
  45. package/dist/design-system/components/NumberField/preview.html +19 -0
  46. package/dist/design-system/components/OTPField/README.md +39 -0
  47. package/dist/design-system/components/OTPField/preview.html +19 -0
  48. package/dist/design-system/components/Popover/README.md +56 -0
  49. package/dist/design-system/components/Popover/preview.html +19 -0
  50. package/dist/design-system/components/PreviewCard/README.md +74 -0
  51. package/dist/design-system/components/PreviewCard/preview.html +19 -0
  52. package/dist/design-system/components/Progress/README.md +58 -0
  53. package/dist/design-system/components/Progress/preview.html +19 -0
  54. package/dist/design-system/components/Radio/README.md +74 -0
  55. package/dist/design-system/components/Radio/preview.html +19 -0
  56. package/dist/design-system/components/ScrollArea/README.md +62 -0
  57. package/dist/design-system/components/ScrollArea/preview.html +40 -0
  58. package/dist/design-system/components/Select/README.md +84 -0
  59. package/dist/design-system/components/Select/preview.html +19 -0
  60. package/dist/design-system/components/Separator/README.md +37 -0
  61. package/dist/design-system/components/Separator/preview.html +19 -0
  62. package/dist/design-system/components/Slider/README.md +44 -0
  63. package/dist/design-system/components/Slider/preview.html +19 -0
  64. package/dist/design-system/components/Switch/README.md +34 -0
  65. package/dist/design-system/components/Switch/preview.html +19 -0
  66. package/dist/design-system/components/Tabs/README.md +56 -0
  67. package/dist/design-system/components/Tabs/preview.html +19 -0
  68. package/dist/design-system/components/Toast/README.md +78 -0
  69. package/dist/design-system/components/Toast/preview.html +19 -0
  70. package/dist/design-system/components/Toggle/README.md +32 -0
  71. package/dist/design-system/components/Toggle/preview.html +19 -0
  72. package/dist/design-system/components/ToggleGroup/README.md +40 -0
  73. package/dist/design-system/components/ToggleGroup/preview.html +19 -0
  74. package/dist/design-system/components/Toolbar/README.md +65 -0
  75. package/dist/design-system/components/Toolbar/preview.html +19 -0
  76. package/dist/design-system/components/Tooltip/README.md +46 -0
  77. package/dist/design-system/components/Tooltip/preview.html +19 -0
  78. package/dist/design-system/components/bundle.js +5 -0
  79. package/dist/design-system/components/index.d.ts +118 -0
  80. package/dist/design-system/components/styles.css +5606 -0
  81. package/dist/index.d.ts +13 -2
  82. package/dist/index.js +36 -26
  83. package/dist/index.js.map +1 -1
  84. package/dist/styles/components/Accordion.css +1 -1
  85. package/dist/styles/components/AlertDialog.css +1 -1
  86. package/dist/styles/components/Autocomplete.css +1 -1
  87. package/dist/styles/components/Avatar.css +1 -1
  88. package/dist/styles/components/Button.css +25 -5
  89. package/dist/styles/components/Checkbox.css +1 -1
  90. package/dist/styles/components/CheckboxGroup.css +1 -1
  91. package/dist/styles/components/Collapsible.css +1 -1
  92. package/dist/styles/components/Combobox.css +1 -1
  93. package/dist/styles/components/ContextMenu.css +1 -1
  94. package/dist/styles/components/Dialog.css +1 -1
  95. package/dist/styles/components/Drawer.css +1 -1
  96. package/dist/styles/components/Field.css +1 -1
  97. package/dist/styles/components/Fieldset.css +1 -1
  98. package/dist/styles/components/Form.css +1 -1
  99. package/dist/styles/components/IconButton.css +49 -0
  100. package/dist/styles/components/Input.css +1 -1
  101. package/dist/styles/components/Menu.css +1 -1
  102. package/dist/styles/components/Menubar.css +1 -1
  103. package/dist/styles/components/Meter.css +1 -1
  104. package/dist/styles/components/NavigationMenu.css +1 -1
  105. package/dist/styles/components/NumberField.css +1 -1
  106. package/dist/styles/components/OTPField.css +1 -1
  107. package/dist/styles/components/Popover.css +5 -2
  108. package/dist/styles/components/PreviewCard.css +1 -1
  109. package/dist/styles/components/Progress.css +1 -1
  110. package/dist/styles/components/Radio.css +1 -1
  111. package/dist/styles/components/ScrollArea.css +1 -1
  112. package/dist/styles/components/Select.css +1 -1
  113. package/dist/styles/components/Separator.css +1 -1
  114. package/dist/styles/components/Slider.css +1 -1
  115. package/dist/styles/components/Switch.css +1 -1
  116. package/dist/styles/components/Tabs.css +1 -1
  117. package/dist/styles/components/Toast.css +1 -1
  118. package/dist/styles/components/Toggle.css +1 -1
  119. package/dist/styles/components/ToggleGroup.css +1 -1
  120. package/dist/styles/components/Toolbar.css +1 -1
  121. package/dist/styles/components/Tooltip.css +1 -1
  122. package/dist/styles/index.css +2 -1
  123. package/dist/styles/reset/accessibility.css +1 -1
  124. package/dist/styles/reset/reset-accessibility.css +1 -1
  125. package/dist/styles/reset/reset-tailwind.css +441 -0
  126. package/dist/styles/reset/reset.css +1 -1
  127. package/dist/styles/tailwind.css +56 -0
  128. package/package.json +5 -3
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* OTP Field - Mojave Theme
3
3
  *
4
4
  * One-time code entry: a row of single-character inputs. Each slot is the same control as Input
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Popover - Mojave Theme */
3
3
 
4
4
  /* ============================================
@@ -48,7 +48,8 @@
48
48
  transform var(--sl-popup-animation-duration) var(--sl-popup-animation-easing);
49
49
  position: relative;
50
50
  min-width: var(--sl-popover-popup-min-width);
51
- max-width: var(--sl-popover-popup-max-width);
51
+ /* No fixed cap: wide content (a calendar, a form) fits; Base UI reports the room beside the trigger. */
52
+ max-width: var(--available-width, 100vw);
52
53
  padding: var(--sl-popup-padding-panel);
53
54
  }
54
55
 
@@ -70,6 +71,7 @@
70
71
  letter-spacing: var(--sl-font-maximize-lg-letter-spacing);
71
72
  color: var(--sl-text-primary);
72
73
  margin: 0 0 var(--sl-space-block-xs) 0;
74
+ max-width: var(--sl-popover-text-max-width);
73
75
  }
74
76
 
75
77
  /* ============================================
@@ -84,6 +86,7 @@
84
86
  letter-spacing: var(--sl-font-base-letter-spacing);
85
87
  color: var(--sl-text-secondary);
86
88
  margin: 0;
89
+ max-width: var(--sl-popover-text-max-width);
87
90
  }
88
91
 
89
92
  /* ============================================
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Preview Card - Mojave Theme
3
3
  *
4
4
  * The popup concept (surface, arrow, motion) with a maximize-lg title and condense
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Progress - Mojave Theme
3
3
  *
4
4
  * A gauge (tokens/semantic/gauge.json), the same bar as Meter. The fill is the solid color of
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Radio - Mojave Theme
3
3
  * Same box as Checkbox, always round. Sizes follow the label the same way, and the
4
4
  * dot is a share of the circle (check.dot-scale).
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Scroll Area - Mojave Theme
3
3
  *
4
4
  * The scrollbar is the content scrollbar (content.scrollbar-*): a track that stays clear until
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Select - Mojave Theme
3
3
  *
4
4
  * The trigger is a field (the field pattern, control sizes, the base text style); the
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Separator - Mojave Theme
3
3
  *
4
4
  * A hairline in the everyday divider color (border.default), one stroke thick, with a step of
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Slider - Mojave Theme
3
3
  *
4
4
  * A slider is a gauge you can drag: the track, fill and label row are gauge.* (the same bar as
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Switch - Mojave Theme
3
3
  * Switch keeps its track sizes. The thumb, its travel and the ON/OFF text are
4
4
  * worked out from them: the thumb fills the track's height inside the padding,
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Tabs - Mojave Theme
3
3
  *
4
4
  * No component tokens. The divider, the selected line and color, hover and the disabled
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Toast - Mojave Theme
3
3
  *
4
4
  * A toast is a notice (tokens/semantic/notice.json) on the popup surface. A toast whose type
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Toggle - Mojave Theme
3
3
  * A toggle is a button that stays pressed: the same heights, padding, gap and
4
4
  * trigger text style as a button of the same size.
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Toggle Group - Mojave Theme
3
3
  *
4
4
  * No component tokens. The strip is the bar concept (tokens/semantic/bar.json); the
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Toolbar - Mojave Theme
3
3
  *
4
4
  * The strip is the bar concept (tokens/semantic/bar.json). Buttons, toggles, selects
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Tooltip - Mojave Theme
3
3
  *
4
4
  * The inverse surface (surface.inverse, text.on-inverse-surface) with condense text, so a tooltip
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Loomiere for Base UI: component styles. Brand-free: every value is a --sl- variable from a
3
3
  Loomiere theme. Load the theme first:
4
4
  @import '<your theme>/tokens.css';
@@ -26,6 +26,7 @@
26
26
  @import './components/Dialog.css';
27
27
  @import './components/Drawer.css';
28
28
  @import './components/Field.css';
29
+ @import './components/IconButton.css';
29
30
  @import './components/Fieldset.css';
30
31
  @import './components/Form.css';
31
32
  @import './components/Input.css';
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Focus, invalid, contrast — requires theme tokens (after theme-accessibility.css). */
3
3
 
4
4
  :focus-visible {
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Accessibility — base rules (no theme color dependencies). Theme-specific focus/invalid: accessibility-theme.css */
3
3
 
4
4
  /* Remove default focus; keyboard focus styled in accessibility-theme.css */
@@ -0,0 +1,441 @@
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
+ /* CSS Reset - Mojave Theme */
3
+
4
+ /* ============================================
5
+ FONTS
6
+ ============================================ */
7
+
8
+
9
+ /* ============================================
10
+ COLOR SCHEME HELPER
11
+ ============================================ */
12
+ :root {
13
+ /* Follows the theme in effect (data-theme or the system), so native scrollbars and pickers match. */
14
+ color-scheme: var(--sl-color-scheme);
15
+ }
16
+
17
+ /* ============================================
18
+ BOX SIZING
19
+ ============================================ */
20
+ *,
21
+ *::before,
22
+ *::after {
23
+ box-sizing: border-box;
24
+ }
25
+
26
+ /* ============================================
27
+ OVERRIDES FOR ALL
28
+ ============================================ */
29
+ * {
30
+ margin: 0;
31
+ padding: 0;
32
+ }
33
+
34
+ /* Respect user's motion preferences */
35
+ @media (prefers-reduced-motion: no-preference) {
36
+ html {
37
+ scroll-behavior: smooth; /* Smooth scrolling */
38
+ }
39
+
40
+ a {
41
+ transition: all 0.2s ease; /* Responsive typography adjustments */
42
+
43
+ }
44
+ }
45
+
46
+ /* ============================================
47
+ SCROLLBARS
48
+ ============================================ */
49
+ * {
50
+ scrollbar-width: thin;
51
+ scrollbar-color: var(--sl-content-scrollbar-thumb) var(--sl-content-scrollbar-track);
52
+ }
53
+
54
+ *::-webkit-scrollbar {
55
+ width: var(--sl-space-2);
56
+ height: var(--sl-space-2);
57
+ }
58
+
59
+ *::-webkit-scrollbar-track {
60
+ background: var(--sl-content-scrollbar-track);
61
+ }
62
+
63
+ *::-webkit-scrollbar-thumb {
64
+ background: var(--sl-content-scrollbar-thumb);
65
+ border-radius: 0.25rem;
66
+ }
67
+
68
+ *::-webkit-scrollbar-thumb:hover {
69
+ background: var(--sl-content-scrollbar-thumb-hover);
70
+ }
71
+
72
+ /* ============================================
73
+ HTML
74
+ ============================================ */
75
+ html {
76
+ -webkit-font-smoothing: antialiased;
77
+ -moz-osx-font-smoothing: grayscale;
78
+ text-rendering: optimizeLegibility;
79
+ font-size: 100%; /* Don't override user's browser font size */
80
+ -webkit-text-size-adjust: 100%; /* Prevent text size adjustment on orientation change */
81
+ }
82
+
83
+ /* ============================================
84
+ BODY
85
+ ============================================ */
86
+
87
+ body {
88
+ /* Layout */
89
+ min-height: 100vh;
90
+ background: var(--sl-content-page-background);
91
+ /*Basic text styling*/
92
+ font-family: var(--sl-font-family-body);
93
+ font-size: var(--sl-font-size-md);
94
+ font-weight: var(--sl-font-weight-normal);
95
+ line-height: var(--sl-line-height-md);
96
+ letter-spacing: var(--sl-letter-spacing-normal);
97
+ color: var(--sl-content-prose-color);
98
+ /* Improve text rendering for better readability */
99
+ text-rendering: optimizeLegibility;
100
+ -webkit-font-smoothing: antialiased;
101
+ -moz-osx-font-smoothing: grayscale;
102
+ font-feature-settings: 'kern' 1; /* Enable kerning */
103
+ }
104
+
105
+ /* ============================================
106
+ TYPOGRAPHY
107
+ ============================================ */
108
+ h1,
109
+ h2,
110
+ h3,
111
+ h4,
112
+ h5,
113
+ h6 {
114
+ font-family: var(--sl-font-family-display);
115
+ font-weight: var(--sl-font-weight-semibold);
116
+ font-size: var(--sl-font-size-md);
117
+ line-height: var(--sl-line-height-md);
118
+ letter-spacing: var(--sl-letter-spacing-normal);
119
+ overflow-wrap: break-word;
120
+ }
121
+
122
+ /* Paragraphs */
123
+ p {
124
+ overflow-wrap: break-word;
125
+ max-inline-size: var(--sl-measure-base);
126
+ text-wrap: pretty;
127
+ margin-block-end: var(--sl-space-4);
128
+ }
129
+
130
+ /* Links */
131
+ a {
132
+ color: var(--sl-content-link-color);
133
+ text-decoration: underline;
134
+ text-decoration-color: var(--sl-content-link-underline-color);
135
+ text-decoration-thickness: 0.125em;
136
+ transition: all 0.2s ease;
137
+
138
+ &:hover {
139
+ color: var(--sl-content-link-hover-color);
140
+ text-decoration-color: var(--sl-content-link-underline-hover-color);
141
+
142
+ }
143
+ }
144
+
145
+ /* Small text */
146
+ small {
147
+ font-size: var(--sl-font-size-sm);
148
+ line-height: var(--sl-line-height-sm);
149
+ }
150
+
151
+ /* Emphasis */
152
+ strong,
153
+ b {
154
+ font-weight: var(--sl-font-weight-bold);
155
+ }
156
+
157
+ em,
158
+ i {
159
+ font-style: italic;
160
+ }
161
+
162
+ /* Mark/Highlight */
163
+ mark {
164
+ background: var(--sl-content-mark-background);
165
+ color: inherit;
166
+ padding: var(--sl-space-0-5) var(--sl-space-1-5);
167
+ border-radius: var(--sl-radius-sm);
168
+ }
169
+
170
+ /* Abbreviations */
171
+ abbr[title] {
172
+ text-decoration: underline dotted;
173
+ text-decoration-color: var(--sl-color-neutral-500);
174
+ cursor: help;
175
+ }
176
+
177
+ /* Subscript and Superscript */
178
+ sub,
179
+ sup {
180
+ font-size: var(--sl-font-size-xs);
181
+ line-height: var(--sl-line-height-md);
182
+ position: relative;
183
+ vertical-align: baseline;
184
+ }
185
+
186
+ sup {
187
+ inset-block-start: -var(--sl-space-2);
188
+ }
189
+
190
+ sub {
191
+ inset-block-end: -var(--sl-space-1);
192
+ }
193
+
194
+ /* Lists */
195
+ ul,
196
+ ol {
197
+ list-style: none;
198
+ max-inline-size: var(--sl-measure-base);
199
+ padding-inline-start: var(--sl-space-6);
200
+ margin-block-end: var(--sl-space-4);
201
+ }
202
+
203
+ /* Better list semantics */
204
+ ul[role='list'],
205
+ ol[role='list'] {
206
+ list-style: none;
207
+ }
208
+
209
+ li {
210
+ margin-block-end: var(--sl-space-2);
211
+ }
212
+
213
+ li::marker {
214
+ color: var(--sl-content-list-marker-color);
215
+ }
216
+
217
+ /* Nested lists */
218
+ li > ul,
219
+ li > ol {
220
+ margin-block-start: var(--sl-space-2);
221
+ margin-block-end: 0;
222
+ }
223
+
224
+ /* Blockquotes */
225
+ blockquote {
226
+ max-inline-size: var(--sl-measure-base);
227
+ margin-block: var(--sl-space-6);
228
+ margin-inline-start: 0;
229
+ padding-inline-start: var(--sl-space-6);
230
+ border-inline-start: var(--sl-space-1) solid var(--sl-content-blockquote-border);
231
+ font-size: var(--sl-font-size-xl);
232
+ font-weight: var(--sl-font-weight-normal);
233
+ line-height: var(--sl-line-height-md);
234
+ letter-spacing: var(--sl-letter-spacing-normal);
235
+ font-style: italic;
236
+ color: inherit;
237
+ }
238
+
239
+ blockquote cite {
240
+ display: block;
241
+ margin-block-start: var(--sl-space-3);
242
+ font-size: var(--sl-font-size-sm);
243
+ font-style: normal;
244
+ color: var(--sl-content-blockquote-cite);
245
+ }
246
+
247
+ blockquote cite::before {
248
+ content: '— ';
249
+ }
250
+
251
+ /* Code */
252
+ code,
253
+ kbd,
254
+ samp,
255
+ pre {
256
+ font-family: var(--sl-font-family-mono);
257
+ font-size: var(--sl-font-size-sm);
258
+ }
259
+
260
+ code {
261
+ padding: 0.125em 0.375em;
262
+ background: var(--sl-content-code-background);
263
+ border: var(--sl-stroke-thin) solid var(--sl-content-code-border);
264
+ border-radius: var(--sl-radius-sm);
265
+ color: var(--sl-content-code-text);
266
+ }
267
+
268
+ pre {
269
+ max-inline-size: 100%;
270
+ padding: var(--sl-space-4);
271
+ background: var(--sl-content-pre-background);
272
+ border: var(--sl-stroke-thin) solid var(--sl-content-pre-border);
273
+ color: var(--sl-content-pre-text);
274
+ border-radius: var(--sl-space-2);
275
+ overflow-x: auto;
276
+ margin-block: var(--sl-space-6);
277
+ }
278
+
279
+ pre code {
280
+ padding: 0;
281
+ background: transparent;
282
+ border: none;
283
+ color: inherit;
284
+ }
285
+
286
+ /* ============================================
287
+ IMAGES AND MEDIA
288
+ ============================================ */
289
+ img,
290
+ picture,
291
+ video,
292
+ canvas,
293
+ svg {
294
+ display: block;
295
+ max-width: 100%;
296
+ }
297
+
298
+ /* ============================================
299
+ FORM ELEMENTS
300
+ ============================================ */
301
+ input,
302
+ button,
303
+ textarea,
304
+ select {
305
+ font: inherit;
306
+ color: inherit;
307
+ }
308
+
309
+ button {
310
+ background: transparent;
311
+ border: var(--sl-stroke-thin) solid transparent;
312
+ cursor: pointer;
313
+
314
+ /* Improve button accessibility */
315
+ &:disabled {
316
+ cursor: not-allowed;
317
+ opacity: 0.6;
318
+ }
319
+ }
320
+
321
+ /* Remove default appearance for form controls */
322
+ input[type='search']::-webkit-search-decoration,
323
+ input[type='search']::-webkit-search-cancel-button,
324
+ input[type='search']::-webkit-search-results-button,
325
+ input[type='search']::-webkit-search-results-decoration {
326
+ -webkit-appearance: none;
327
+ }
328
+
329
+ /* Remove spinner from number inputs */
330
+ input[type='number']::-webkit-inner-spin-button,
331
+ input[type='number']::-webkit-outer-spin-button {
332
+ -webkit-appearance: none;
333
+ margin: 0;
334
+ }
335
+
336
+ input[type='number'] {
337
+ -moz-appearance: textfield;
338
+ appearance: textfield;
339
+ }
340
+
341
+ /* Remove default fieldset styles */
342
+ fieldset {
343
+ border: var(--sl-stroke-thin) solid var(--sl-content-field-border);
344
+ border-radius: var(--sl-radius-sm);
345
+ }
346
+
347
+ /* ============================================
348
+ TABLES
349
+ ============================================ */
350
+ /* Improve table accessibility */
351
+ table {
352
+ border-collapse: collapse;
353
+ border-spacing: 0;
354
+ width: 100%;
355
+ }
356
+
357
+ th {
358
+ text-align: left;
359
+ font-weight: var(--sl-font-weight-semibold);
360
+ }
361
+
362
+ /* ============================================
363
+ OTHER ELEMENTS
364
+ ============================================ */
365
+
366
+ /* Remove default legend styles */
367
+ legend {
368
+ padding: 0;
369
+ }
370
+
371
+ /* Keyboard input */
372
+ kbd {
373
+ padding: var(--sl-space-0-5) var(--sl-space-2-5);
374
+ background: var(--sl-content-kbd-background);
375
+ color: var(--sl-content-kbd-text);
376
+ border-radius: var(--sl-radius-sm);
377
+ font-size: var(--sl-font-size-sm);
378
+ box-shadow: var(--sl-elevation-xs);
379
+ }
380
+
381
+ /* Horizontal rule */
382
+ hr {
383
+ border: none;
384
+ border-block-start: var(--sl-stroke-thin) solid var(--sl-content-hr-border);
385
+ margin-block: var(--sl-space-8);
386
+ }
387
+
388
+ /* Hidden attribute */
389
+ [hidden] {
390
+ display: none !important;
391
+ }
392
+
393
+ /* Disabled state */
394
+ [disabled] {
395
+ cursor: not-allowed;
396
+ }
397
+
398
+ /* Color When User Selects Text */
399
+ ::selection {
400
+ background: var(--sl-content-selection-background);
401
+ color: var(--sl-content-selection-text);
402
+ }
403
+
404
+ ::-moz-selection {
405
+ background: var(--sl-content-selection-background);
406
+ color: var(--sl-content-selection-text);
407
+ }
408
+
409
+ /* ============================================
410
+ PRINT STYLES
411
+ ============================================ */
412
+
413
+ @media print {
414
+ body {
415
+ font-size: 12pt;
416
+ line-height: 1.5;
417
+ color: #000;
418
+ }
419
+
420
+ h1 {
421
+ font-size: 24pt;
422
+ }
423
+
424
+ h2 {
425
+ font-size: 20pt;
426
+ }
427
+
428
+ h3 {
429
+ font-size: 16pt;
430
+ }
431
+
432
+ a {
433
+ color: #000;
434
+ text-decoration: underline;
435
+ }
436
+
437
+ a[href^='http']::after {
438
+ content: ' (' attr(href) ')';
439
+ font-size: 0.8em;
440
+ }
441
+ }
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.1.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* CSS Reset - Mojave Theme */
3
3
 
4
4
  /* ============================================
@@ -0,0 +1,56 @@
1
+ /* @scattered-light/loomiere-base-ui 0.3.0 · styles for @base-ui/react 1.9.0 */
2
+ /* Loomiere for Base UI: component styles for Tailwind CSS v4. Load Tailwind and the theme first:
3
+ @import 'tailwindcss';
4
+ @import '<your theme>/tokens.css';
5
+ @import '<your theme>/exports/tailwind.css';
6
+ @import '@scattered-light/loomiere-base-ui/tailwind.css';
7
+ The reset sits in Tailwind's base layer and the components in its components layer, so a
8
+ utility class on a component (class="Button px-6") wins.
9
+ Load the fonts before tailwindcss (an @import url() after it is dropped), or with a <link>:
10
+ @import url('https://fonts.googleapis.com/css2?family=Barlow+Semi+Condensed:wght@300;400;500;600;700&family=Funnel+Display:wght@300;400;500;600;700&family=Roboto+Mono:wght@300;400;500;600;700&display=swap'); */
11
+ @import '@material-symbols/font-400/outlined.css';
12
+
13
+ /* Document defaults, in Tailwind's base layer after its preflight. */
14
+ @import './reset/reset-tailwind.css' layer(base);
15
+ @import './reset/reset-accessibility.css' layer(base);
16
+ @import './reset/accessibility.css' layer(base);
17
+
18
+ /* Component styles */
19
+ @import './components/Accordion.css' layer(components);
20
+ @import './components/AlertDialog.css' layer(components);
21
+ @import './components/Autocomplete.css' layer(components);
22
+ @import './components/Avatar.css' layer(components);
23
+ @import './components/Button.css' layer(components);
24
+ @import './components/Checkbox.css' layer(components);
25
+ @import './components/CheckboxGroup.css' layer(components);
26
+ @import './components/Collapsible.css' layer(components);
27
+ @import './components/Combobox.css' layer(components);
28
+ @import './components/ContextMenu.css' layer(components);
29
+ @import './components/Dialog.css' layer(components);
30
+ @import './components/Drawer.css' layer(components);
31
+ @import './components/Field.css' layer(components);
32
+ @import './components/IconButton.css' layer(components);
33
+ @import './components/Fieldset.css' layer(components);
34
+ @import './components/Form.css' layer(components);
35
+ @import './components/Input.css' layer(components);
36
+ @import './components/Menu.css' layer(components);
37
+ @import './components/Menubar.css' layer(components);
38
+ @import './components/Meter.css' layer(components);
39
+ @import './components/NavigationMenu.css' layer(components);
40
+ @import './components/NumberField.css' layer(components);
41
+ @import './components/OTPField.css' layer(components);
42
+ @import './components/Popover.css' layer(components);
43
+ @import './components/PreviewCard.css' layer(components);
44
+ @import './components/Progress.css' layer(components);
45
+ @import './components/Radio.css' layer(components);
46
+ @import './components/ScrollArea.css' layer(components);
47
+ @import './components/Select.css' layer(components);
48
+ @import './components/Separator.css' layer(components);
49
+ @import './components/Slider.css' layer(components);
50
+ @import './components/Switch.css' layer(components);
51
+ @import './components/Tabs.css' layer(components);
52
+ @import './components/Toast.css' layer(components);
53
+ @import './components/Toggle.css' layer(components);
54
+ @import './components/ToggleGroup.css' layer(components);
55
+ @import './components/Toolbar.css' layer(components);
56
+ @import './components/Tooltip.css' layer(components);