layered-ui-rails 0.7.0 → 0.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b538d1b28b8718c6bcbaa3e9e21b8294b2e0556ca869433245d1e587ac7679a9
4
- data.tar.gz: 775ec4083eb6e729eee0aa2c83c3ed5001fe258dd79c78ed476e103910797dda
3
+ metadata.gz: d5abac205810e228d971ffa9c13f2c069c56be3f143c0f25612f02c2d8b6e598
4
+ data.tar.gz: 3dbb48d42029cce15cb92dcbd6cc014046032cb7449f145e63854b4898936d14
5
5
  SHA512:
6
- metadata.gz: bfd719cd045e9ceb2a065c8ab8de722f6bc9187e541580dd39e7f11bd3672aae14628b04252fd0dc0de44dcc0656cb61df01954c210227a611a6bf4c5d187e1e
7
- data.tar.gz: 4ac05f4a41d0cb312d67f0337136f77a3eecfb944089ce65be0c78fe15fe7a326edd7f06fa790c0b5cec1cb57cb2275c99d14d39015be3288ef35da7dffd706e
6
+ metadata.gz: e39b4bbc08bb0f198320dccf181de35003e0ab2927eabe3666e0f39743e652a3e9ca45dc295d40b3ce22e1a85381392d86bd202dda9d905f1b500f2c837fdb6d
7
+ data.tar.gz: 8efb4d5a510c8ef52541b0d9f1286e13dce5b8d64c90d7f984e4d4eccfc7153f91eafa83c5beadf54911b2a8a405e5b8c54383ea3884dc2ed6c0169c70f283ca
@@ -61,7 +61,7 @@ Populate layout regions with `content_for` (always above the render call):
61
61
  <%# Inject into <head> (e.g. per-tenant theming) %>
62
62
  <% content_for :l_ui_head do %>
63
63
  <style nonce="<%= content_security_policy_nonce %>">
64
- :root { --accent: 220 80% 55%; }
64
+ :root { --accent: oklch(0.58 0.19 255); }
65
65
  </style>
66
66
  <% end %>
67
67
 
@@ -150,17 +150,17 @@ All controllers use the `l-ui--` namespace and are auto-registered via importmap
150
150
 
151
151
  ## Theming
152
152
 
153
- Override CSS custom properties after the engine import. Values are space-separated HSL channels (e.g. `220 80% 55%`, or `0 0% 100%` for white). Keywords and hex/rgb won't work - tokens are wrapped in `hsl()` when consumed. A converter such as https://colorpicker.dev/ can help translate hex/rgb values.
153
+ Override CSS custom properties after the engine import. Values are full CSS colors - `oklch()` is recommended for perceptually uniform mixing and consistent contrast, but `#hex`, `rgb()`, and keywords also work. A converter such as https://oklch.com/ can help translate from hex/rgb.
154
154
 
155
155
  ```css
156
156
  @import "./layered_ui";
157
157
 
158
158
  :root {
159
- --accent: 220 80% 55%;
160
- --accent-foreground: 0 0% 100%;
159
+ --accent: oklch(0.58 0.19 255);
160
+ --accent-foreground: oklch(1 0 0);
161
161
  }
162
162
  .dark {
163
- --accent: 220 80% 65%;
163
+ --accent: oklch(0.72 0.14 255);
164
164
  }
165
165
  ```
166
166
 
@@ -283,7 +283,7 @@ WCAG 2.2 AA table pattern:
283
283
 
284
284
  ## Theming tokens
285
285
 
286
- All color values are space-separated HSL channels (e.g. `220 80% 55%`, or `0 0% 100%` for white). Override after importing the engine CSS. Keywords and hex/rgb won't work - tokens are wrapped in `hsl()` when consumed. A converter such as https://colorpicker.dev/ can help translate hex/rgb values.
286
+ All color values are full CSS colors - `oklch()` is recommended for perceptually uniform mixing and consistent contrast (e.g. `oklch(0.58 0.19 255)`), but `#hex`, `rgb()`, and keywords also work. Override after importing the engine CSS. A converter such as https://oklch.com/ can help translate from hex/rgb.
287
287
 
288
288
  Tier 1 - Accent (quick branding):
289
289
  ```
data/AGENTS.md CHANGED
@@ -6,7 +6,7 @@ Guidance for AI agents working in this repository.
6
6
 
7
7
  - **Entry:** `require "layered-ui-rails"` → `lib/layered/ui.rb` → `lib/layered/ui/engine.rb`
8
8
  - **Engine:** importmap, assets, Pagy helpers when present; helpers: `AuthenticationHelper`, `NavigationHelper`, `PagyHelper`
9
- - **CSS** `app/assets/tailwind/layered/ui/styles.css`: HSL tokens, `.dark` on `<html>`, `@theme` utilities (`bg-background`, etc.), BEM components (`.l-ui-button--primary`, etc.). Layout: 63px header, 240px sidebar, 320px panel. WCAG 2.2 AA.
9
+ - **CSS** `app/assets/tailwind/layered/ui/styles.css`: OKLCH tokens, `.dark` on `<html>`, `@theme` utilities (`bg-background`, etc.), BEM components (`.l-ui-button--primary`, etc.). Layout: 63px header, 240px sidebar, 320px panel. WCAG 2.2 AA.
10
10
  - **CSS `@apply`:** Multi-line with grouping (layout → spacing → typography → colors → effects). Single utilities may stay on one line.
11
11
  - **Generators:** `bin/rails generate layered:ui:install` (copy CSS, import CSS, import JS)
12
12
  - **JS** `app/javascript/layered_ui/`: Stimulus controllers registered as `l-ui--theme`, `l-ui--navigation`, `l-ui--panel`, `l-ui--modal`, `l-ui--tabs`
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. This project follows [Semantic Versioning](https://semver.org/).
4
4
 
5
+ ## [Unreleased]
6
+
7
+ ## [0.8.0] - 2026-04-24
8
+
9
+ ### Changed
10
+
11
+ - **Breaking:** Theme tokens migrated from HSL channels (`220 80% 55%`) to full `oklch()` values for perceptually uniform mixing. `@theme` now references the vars directly instead of wrapping them in `hsl()`. Existing overrides files need to be updated: replace `hue sat% lightness%` with the equivalent `oklch(L C H)` value (or any valid CSS color - `#hex`, `rgb()`, and keywords all work now).
12
+ - `layered:ui:create_overrides` generator and token documentation (`SKILL.md`, `references/CSS.md`, `README.md`, dummy app colour/head pages) updated to reflect the new `oklch()` format.
13
+
5
14
  ## [0.7.0] - 2026-04-23
6
15
 
7
16
  ### Added
data/README.md CHANGED
@@ -104,14 +104,14 @@ All colors are CSS custom properties on `:root` using a two-tier system:
104
104
  @import "./layered_ui";
105
105
 
106
106
  :root {
107
- --accent: 220 80% 55%;
108
- --accent-foreground: 0 0% 100%;
107
+ --accent: oklch(0.58 0.19 255);
108
+ --accent-foreground: oklch(1 0 0);
109
109
  }
110
110
 
111
111
  .dark {
112
- --accent: 220 80% 65%;
113
- --accent-foreground: 0 0% 9%;
114
- --button-primary-text: 0 0% 100%; /* white icons/text on colored buttons */
112
+ --accent: oklch(0.72 0.14 255);
113
+ --accent-foreground: oklch(0.2044 0 0);
114
+ --button-primary-text: oklch(1 0 0); /* white icons/text on colored buttons */
115
115
  }
116
116
  ```
117
117
 
@@ -120,7 +120,7 @@ For dynamic theming (e.g. per-tenant branding), use `content_for :l_ui_head` to
120
120
  ```erb
121
121
  <% content_for :l_ui_head do %>
122
122
  <style>
123
- :root { --accent: <%= @tenant.accent_hsl %>; --accent-foreground: 0 0% 100%; }
123
+ :root { --accent: <%= @tenant.accent_color %>; --accent-foreground: oklch(1 0 0); }
124
124
  </style>
125
125
  <% end %>
126
126
  ```
@@ -132,7 +132,7 @@ For dynamic theming (e.g. per-tenant branding), use `content_for :l_ui_head` to
132
132
  > ```erb
133
133
  > <% content_for :l_ui_head do %>
134
134
  > <style nonce="<%= content_security_policy_nonce %>">
135
- > :root { --accent: <%= @tenant.accent_hsl %>; --accent-foreground: 0 0% 100%; }
135
+ > :root { --accent: <%= @tenant.accent_color %>; --accent-foreground: oklch(1 0 0); }
136
136
  > </style>
137
137
  > <% end %>
138
138
  > ```
@@ -213,9 +213,7 @@ kamal deploy
213
213
 
214
214
  ## Contributing
215
215
 
216
- This project is still in its early days. We welcome issues, feedback, and ideas - they genuinely help shape the direction of the project. That said, we're holding off on accepting pull requests until after the 1.0 release so we can stay focused on getting the core foundations right. Once we're there, we'd love to open things up to broader contributions. Thanks for your patience and interest!
217
-
218
- - [CLA.md](CLA.md) - contributor license agreement
216
+ This project is still in its early days. We welcome issues, feedback, and ideas - they genuinely help shape the direction of the project. That said, we're holding off on accepting pull requests for now to stay focused on getting the foundations right. Thank you for your patience and interest. See [CLA.md](CLA.md) for the full policy.
219
217
 
220
218
  ## License
221
219
 
@@ -225,4 +223,4 @@ Copyright 2026 LAYERED AI LIMITED (UK company number: 17056830). See [NOTICE](NO
225
223
 
226
224
  ## Trademarks
227
225
 
228
- The source code is fully open, but the layered.ai name, logo, and brand assets are trademarks of LAYERED AI LIMITED. The Apache 2.0 license does not grant rights to use the layered.ai branding. Forks and redistributions must use a distinct name. See [TRADEMARK.md](TRADEMARK.md) for the full policy.
226
+ The source code is fully open, but the layered.ai name, logo, and brand assets are trademarks of LAYERED AI LIMITED. The Apache 2.0 license does not grant rights to use the layered.ai branding. Forks and redistributions must use a distinct name. See [TRADEMARK.md](TRADEMARK.md) for the full policy.
@@ -33,7 +33,7 @@
33
33
  @variant dark (&:where(.dark, .dark *));
34
34
 
35
35
  /*
36
- * Color tokens (HSL channels, e.g. "220 80% 55%")
36
+ * Color tokens (full oklch() values, e.g. "oklch(0.7 0.15 240)")
37
37
  *
38
38
  * Tier 1 - Accent: --accent, --accent-foreground
39
39
  * Tier 2 - Full palette: background, foreground, border, surface, etc.
@@ -48,59 +48,59 @@
48
48
  @layer base {
49
49
  :root {
50
50
  /* Tier 1 - Accent */
51
- --accent: 0 0% 9%;
52
- --accent-foreground: 0 0% 100%;
51
+ --accent: oklch(0.2044 0 0);
52
+ --accent-foreground: oklch(1 0 0);
53
53
  /* Tier 2 - Full palette */
54
- --background: 0 0% 100%;
55
- --foreground: 0 0% 13%;
56
- --foreground-muted: 0 0% 29%;
57
- --border: 0 0% 91%;
58
- --border-control: 0 0% 55%;
59
- --ring: 0 0% 13%;
60
- --surface: 0 0% 96%;
61
- --surface-highlighted: 0 0% 91%;
54
+ --background: oklch(1 0 0);
55
+ --foreground: oklch(0.2484 0 0);
56
+ --foreground-muted: oklch(0.4089 0 0);
57
+ --border: oklch(0.9312 0 0);
58
+ --border-control: oklch(0.6409 0 0);
59
+ --ring: oklch(0.2484 0 0);
60
+ --surface: oklch(0.9696 0 0);
61
+ --surface-highlighted: oklch(0.9312 0 0);
62
62
  --button-primary-bg: var(--accent);
63
63
  --button-primary-text: var(--accent-foreground);
64
64
  --button-primary-icon: var(--button-primary-text);
65
- --danger: 0 72% 38%;
66
- --danger-light: 0 100% 97%;
67
- --danger-text: 0 72% 35%;
68
- --success-bg: 142 76% 65%;
69
- --success-text: 142 76% 13%;
70
- --switch-track-checked: 142 70% 38%;
71
- --warning-bg: 48 96% 65%;
72
- --warning-text: 48 96% 15%;
73
- --error-bg: 0 84% 75%;
74
- --error-text: 0 93% 12%;
65
+ --danger: oklch(0.47 0.1742 27.23);
66
+ --danger-light: oklch(0.9663 0.0166 17.44);
67
+ --danger-text: oklch(0.443 0.1634 27.14);
68
+ --success-bg: oklch(0.8395 0.1698 152.91);
69
+ --success-text: oklch(0.3088 0.0763 150.76);
70
+ --switch-track-checked: oklch(0.6334 0.1664 149.75);
71
+ --warning-bg: oklch(0.8908 0.1551 94.86);
72
+ --warning-text: oklch(0.3625 0.0732 93.12);
73
+ --error-bg: oklch(0.748 0.1306 20.64);
74
+ --error-text: oklch(0.2248 0.0874 28.11);
75
75
  --header-height: 63px;
76
76
  }
77
77
 
78
78
  .dark {
79
79
  /* Tier 1 - Accent */
80
- --accent: 0 0% 100%;
81
- --accent-foreground: 0 0% 9%;
80
+ --accent: oklch(1 0 0);
81
+ --accent-foreground: oklch(0.2044 0 0);
82
82
  /* Tier 2 - Full palette */
83
- --background: 0 0% 0%;
84
- --foreground: 0 0% 89%;
85
- --foreground-muted: 0 0% 71%;
86
- --border: 0 0% 16%;
87
- --border-control: 0 0% 40%;
88
- --ring: 0 0% 89%;
89
- --surface: 0 0% 8%;
90
- --surface-highlighted: 0 0% 16%;
83
+ --background: oklch(0 0 0);
84
+ --foreground: oklch(0.9157 0 0);
85
+ --foreground-muted: oklch(0.7733 0 0);
86
+ --border: oklch(0.2801 0 0);
87
+ --border-control: oklch(0.5103 0 0);
88
+ --ring: oklch(0.9157 0 0);
89
+ --surface: oklch(0.193 0 0);
90
+ --surface-highlighted: oklch(0.2801 0 0);
91
91
  --button-primary-bg: var(--accent);
92
92
  --button-primary-text: var(--accent-foreground);
93
93
  --button-primary-icon: var(--button-primary-text);
94
- --danger: 0 85% 60%;
95
- --danger-light: 0 93% 15%;
96
- --danger-text: 0 85% 64%;
97
- --success-bg: 142 76% 15%;
98
- --success-text: 142 76% 80%;
99
- --switch-track-checked: 142 70% 45%;
100
- --warning-bg: 48 96% 15%;
101
- --warning-text: 48 96% 80%;
102
- --error-bg: 0 93% 12%;
103
- --error-text: 0 84% 75%;
94
+ --danger: oklch(0.6362 0.2102 25.49);
95
+ --danger-light: oklch(0.2596 0.1021 28.32);
96
+ --danger-text: oklch(0.6607 0.1921 24.02);
97
+ --success-bg: oklch(0.3385 0.0852 150.45);
98
+ --success-text: oklch(0.8999 0.1022 155.94);
99
+ --switch-track-checked: oklch(0.7176 0.1902 149.6);
100
+ --warning-bg: oklch(0.3625 0.0732 93.12);
101
+ --warning-text: oklch(0.9336 0.1 95.79);
102
+ --error-bg: oklch(0.2248 0.0874 28.11);
103
+ --error-text: oklch(0.748 0.1306 20.64);
104
104
  }
105
105
 
106
106
  /* Typography */
@@ -148,7 +148,7 @@
148
148
  .l-ui-body,
149
149
  .l-ui-body * {
150
150
  scrollbar-width: thin;
151
- scrollbar-color: hsl(var(--foreground-muted) / 0.3) transparent;
151
+ scrollbar-color: color-mix(in oklch, var(--foreground-muted) 30%, transparent) transparent;
152
152
  }
153
153
  }
154
154
 
@@ -157,29 +157,29 @@
157
157
  @theme {
158
158
  --font-manrope: 'Manrope', ui-sans-serif, system-ui, sans-serif;
159
159
  --font-inter: 'Inter', ui-sans-serif, system-ui, sans-serif;
160
- --color-accent: hsl(var(--accent));
161
- --color-accent-foreground: hsl(var(--accent-foreground));
162
- --color-background: hsl(var(--background));
163
- --color-foreground: hsl(var(--foreground));
164
- --color-foreground-muted: hsl(var(--foreground-muted));
165
- --color-border: hsl(var(--border));
166
- --color-border-control: hsl(var(--border-control));
167
- --color-surface: hsl(var(--surface));
168
- --color-surface-highlighted: hsl(var(--surface-highlighted));
169
- --color-button-primary-bg: hsl(var(--button-primary-bg));
170
- --color-button-primary-text: hsl(var(--button-primary-text));
171
- --color-button-primary-icon: hsl(var(--button-primary-icon));
172
- --color-danger: hsl(var(--danger));
173
- --color-danger-light: hsl(var(--danger-light));
174
- --color-danger-text: hsl(var(--danger-text));
175
- --color-success-bg: hsl(var(--success-bg));
176
- --color-success-text: hsl(var(--success-text));
177
- --color-switch-track-checked: hsl(var(--switch-track-checked));
178
- --color-warning-bg: hsl(var(--warning-bg));
179
- --color-warning-text: hsl(var(--warning-text));
180
- --color-error-bg: hsl(var(--error-bg));
181
- --color-error-text: hsl(var(--error-text));
182
- --color-ring: hsl(var(--ring));
160
+ --color-accent: var(--accent);
161
+ --color-accent-foreground: var(--accent-foreground);
162
+ --color-background: var(--background);
163
+ --color-foreground: var(--foreground);
164
+ --color-foreground-muted: var(--foreground-muted);
165
+ --color-border: var(--border);
166
+ --color-border-control: var(--border-control);
167
+ --color-surface: var(--surface);
168
+ --color-surface-highlighted: var(--surface-highlighted);
169
+ --color-button-primary-bg: var(--button-primary-bg);
170
+ --color-button-primary-text: var(--button-primary-text);
171
+ --color-button-primary-icon: var(--button-primary-icon);
172
+ --color-danger: var(--danger);
173
+ --color-danger-light: var(--danger-light);
174
+ --color-danger-text: var(--danger-text);
175
+ --color-success-bg: var(--success-bg);
176
+ --color-success-text: var(--success-text);
177
+ --color-switch-track-checked: var(--switch-track-checked);
178
+ --color-warning-bg: var(--warning-bg);
179
+ --color-warning-text: var(--warning-text);
180
+ --color-error-bg: var(--error-bg);
181
+ --color-error-text: var(--error-text);
182
+ --color-ring: var(--ring);
183
183
  }
184
184
 
185
185
  /* Accessibility */
@@ -1092,7 +1092,7 @@ pre.l-ui-surface {
1092
1092
  w-4 h-4
1093
1093
  pointer-events-none;
1094
1094
  content: '';
1095
- background-color: hsl(var(--foreground));
1095
+ background-color: var(--foreground);
1096
1096
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z'/%3E%3C/svg%3E");
1097
1097
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z'/%3E%3C/svg%3E");
1098
1098
  -webkit-mask-size: contain;
@@ -26,10 +26,11 @@ module Layered
26
26
  * This file is NOT overwritten by the install generator, so your
27
27
  * changes are preserved when you upgrade layered-ui-rails.
28
28
  *
29
- * Values are space-separated HSL channels (e.g. `220 80% 55%`,
30
- * or `0 0% 100%` for white). Keywords and hex/rgb won't work -
31
- * tokens are wrapped in `hsl()` when consumed. A converter such
32
- * as https://colorpicker.dev/ can help translate hex/rgb values.
29
+ * Values are full `oklch()` colors (e.g. `oklch(0.7 0.15 240)`).
30
+ * Any valid CSS color works too - `#hex`, `rgb(...)`, keywords -
31
+ * but `oklch()` is recommended for perceptually uniform mixing
32
+ * and consistent contrast. A converter such as
33
+ * https://oklch.com/ can help translate from hex/rgb.
33
34
  */
34
35
 
35
36
  /* ----------------------------------------------------------------
@@ -46,13 +47,13 @@ module Layered
46
47
  * ---------------------------------------------------------------- */
47
48
 
48
49
  :root {
49
- /* --accent: 0 0% 9%; */
50
- /* --accent-foreground: 0 0% 100%; */
50
+ /* --accent: oklch(0.2044 0 0); */
51
+ /* --accent-foreground: oklch(1 0 0); */
51
52
  }
52
53
 
53
54
  .dark {
54
- /* --accent: 0 0% 100%; */
55
- /* --accent-foreground: 0 0% 9%; */
55
+ /* --accent: oklch(1 0 0); */
56
+ /* --accent-foreground: oklch(0.2044 0 0); */
56
57
  }
57
58
 
58
59
  /* ----------------------------------------------------------------
@@ -63,49 +64,49 @@ module Layered
63
64
 
64
65
  /*
65
66
  :root {
66
- --background: 0 0% 100%;
67
- --foreground: 0 0% 13%;
68
- --foreground-muted: 0 0% 29%;
69
- --border: 0 0% 91%;
70
- --border-control: 0 0% 55%;
71
- --ring: 0 0% 13%;
72
- --surface: 0 0% 96%;
73
- --surface-highlighted: 0 0% 91%;
67
+ --background: oklch(1 0 0);
68
+ --foreground: oklch(0.2484 0 0);
69
+ --foreground-muted: oklch(0.4089 0 0);
70
+ --border: oklch(0.9312 0 0);
71
+ --border-control: oklch(0.6409 0 0);
72
+ --ring: oklch(0.2484 0 0);
73
+ --surface: oklch(0.9696 0 0);
74
+ --surface-highlighted: oklch(0.9312 0 0);
74
75
  --button-primary-bg: var(--accent);
75
76
  --button-primary-text: var(--accent-foreground);
76
77
  --button-primary-icon: var(--button-primary-text);
77
- --danger: 0 72% 38%;
78
- --danger-light: 0 100% 97%;
79
- --danger-text: 0 72% 35%;
80
- --success-bg: 142 76% 65%;
81
- --success-text: 142 76% 13%;
82
- --warning-bg: 48 96% 65%;
83
- --warning-text: 48 96% 15%;
84
- --error-bg: 0 84% 75%;
85
- --error-text: 0 93% 12%;
78
+ --danger: oklch(0.47 0.1742 27.23);
79
+ --danger-light: oklch(0.9663 0.0166 17.44);
80
+ --danger-text: oklch(0.443 0.1634 27.14);
81
+ --success-bg: oklch(0.8395 0.1698 152.91);
82
+ --success-text: oklch(0.3088 0.0763 150.76);
83
+ --warning-bg: oklch(0.8908 0.1551 94.86);
84
+ --warning-text: oklch(0.3625 0.0732 93.12);
85
+ --error-bg: oklch(0.748 0.1306 20.64);
86
+ --error-text: oklch(0.2248 0.0874 28.11);
86
87
  }
87
88
 
88
89
  .dark {
89
- --background: 0 0% 0%;
90
- --foreground: 0 0% 89%;
91
- --foreground-muted: 0 0% 71%;
92
- --border: 0 0% 16%;
93
- --border-control: 0 0% 40%;
94
- --ring: 0 0% 89%;
95
- --surface: 0 0% 8%;
96
- --surface-highlighted: 0 0% 16%;
90
+ --background: oklch(0 0 0);
91
+ --foreground: oklch(0.9157 0 0);
92
+ --foreground-muted: oklch(0.7733 0 0);
93
+ --border: oklch(0.2801 0 0);
94
+ --border-control: oklch(0.5103 0 0);
95
+ --ring: oklch(0.9157 0 0);
96
+ --surface: oklch(0.193 0 0);
97
+ --surface-highlighted: oklch(0.2801 0 0);
97
98
  --button-primary-bg: var(--accent);
98
99
  --button-primary-text: var(--accent-foreground);
99
100
  --button-primary-icon: var(--button-primary-text);
100
- --danger: 0 85% 60%;
101
- --danger-light: 0 93% 15%;
102
- --danger-text: 0 85% 64%;
103
- --success-bg: 142 76% 15%;
104
- --success-text: 142 76% 80%;
105
- --warning-bg: 48 96% 15%;
106
- --warning-text: 48 96% 80%;
107
- --error-bg: 0 93% 12%;
108
- --error-text: 0 84% 75%;
101
+ --danger: oklch(0.6362 0.2102 25.49);
102
+ --danger-light: oklch(0.2596 0.1021 28.32);
103
+ --danger-text: oklch(0.6607 0.1921 24.02);
104
+ --success-bg: oklch(0.3385 0.0852 150.45);
105
+ --success-text: oklch(0.8999 0.1022 155.94);
106
+ --warning-bg: oklch(0.3625 0.0732 93.12);
107
+ --warning-text: oklch(0.9336 0.1 95.79);
108
+ --error-bg: oklch(0.2248 0.0874 28.11);
109
+ --error-text: oklch(0.748 0.1306 20.64);
109
110
  }
110
111
  */
111
112
 
@@ -1,5 +1,5 @@
1
1
  module Layered
2
2
  module Ui
3
- VERSION = "0.7.0"
3
+ VERSION = "0.8.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: layered-ui-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - layered.ai