studio-engine 0.14.0 → 0.15.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: 8540d767e024bc8314d5471788d3f430e79a1e17c2dc49ba5c28a61f84f74646
4
- data.tar.gz: ba45685b2e743504e7c60a59f35a6a41074d72b8ef1c60460f3f6b65d34d65f6
3
+ metadata.gz: 4c7828a97a832ad01592ab1875eef12fc5365d1ad98e2e7c19da71b8e5a47cab
4
+ data.tar.gz: 8a8c6726ea00cad17bd17426184ca546c5ad3fc08c7d9d497448b76b0a5626d2
5
5
  SHA512:
6
- metadata.gz: 6dabad0d6e3946fb10b990a4b525cd3e03c248eabfebf1408cd790cfaba678df19fe115d7928d8eac247ada917cf9479e7857afe08418d9e9944b0ac7a5ed975
7
- data.tar.gz: fbd613547387db6bd201d0f03d66685accffcba10adaa8f68349b3fbe785ea275e5c4c6a3f0dff2d15bdc7884294fa995066c7b20830319e54831219bdf6c10c
6
+ metadata.gz: df1f556225655c111cdb3499c0809f4495dc941421c2606a0c2c85f21f28b412f7a53a8c99fef6712e191cb3f4d8b892872fc799d3dadc3d0b666a42408b9c89
7
+ data.tar.gz: 1ac4533e4061b6da06319854f478d7adc5eaf01e38f04a0885cda122ea712c1f9211e4010582a6e2bfa62cbad2637e82518f28ef7ceac3d742a7cf5f9641d665
@@ -62,6 +62,33 @@
62
62
 
63
63
  /* -- Button system (standardized across all Studio apps) ------------------- */
64
64
 
65
+ /*
66
+ Overridable variants — token contract.
67
+
68
+ Most filled variants sit on a theme role and darken on hover. Two of them
69
+ (btn-secondary, btn-neutral) are TOKEN-DRIVEN so a consuming app can retune
70
+ them WITHOUT redeclaring the @utility — a local `@utility` redeclaration is
71
+ ADDITIVE in Tailwind v4 (both definitions emit and the engine's rules leak in),
72
+ so forking is not a clean override. Set these on :root in the consumer's CSS:
73
+
74
+ --btn-secondary-bg base fill (default: var(--color-success))
75
+ --btn-secondary-bg-hover hover fill (default: same as base)
76
+ --btn-secondary-hover-filter hover filter (default: brightness(0.9))
77
+ --btn-neutral-bg base fill (default: var(--color-surface-alt))
78
+ --btn-neutral-bg-hover hover fill (default: var(--color-surface))
79
+ --btn-neutral-hover-filter hover filter (default: none)
80
+
81
+ With no tokens set, the compiled result is visually identical to the previous
82
+ hard-coded rules. Example — turf-monster's violet secondary + brightness neutral:
83
+
84
+ :root {
85
+ --btn-secondary-bg: #8e82fe; --btn-secondary-bg-hover: #7b6ef6;
86
+ --btn-secondary-hover-filter: none;
87
+ --btn-neutral-bg-hover: var(--color-surface-alt);
88
+ --btn-neutral-hover-filter: brightness(1.3);
89
+ }
90
+ */
91
+
65
92
  @utility btn {
66
93
  @apply inline-flex items-center justify-center font-bold rounded-lg transition px-6 py-2 text-sm disabled:opacity-50 disabled:cursor-not-allowed;
67
94
  &:focus-visible {
@@ -78,14 +105,17 @@
78
105
  }
79
106
  }
80
107
 
81
- /* NOTE: btn-secondary and btn-success compile to IDENTICAL declarations (both
82
- sit on var(--color-success)) an intentional hub-canonical alias, kept as
83
- two names so existing markup in every consumer keeps working. */
108
+ /* btn-secondary DEFAULTS to the success role with no tokens set it compiles
109
+ like btn-success, preserving the hub-canonical alias every consumer relies on.
110
+ It is token-overridable (see the contract above) so an app whose secondary
111
+ action diverges from success (turf-monster's violet) retunes it via
112
+ --btn-secondary-* instead of forking the @utility. */
84
113
  @utility btn-secondary {
85
114
  @apply text-white;
86
- background-color: var(--color-success);
115
+ background-color: var(--btn-secondary-bg, var(--color-success));
87
116
  &:hover {
88
- filter: brightness(0.9);
117
+ background-color: var(--btn-secondary-bg-hover, var(--btn-secondary-bg, var(--color-success)));
118
+ filter: var(--btn-secondary-hover-filter, brightness(0.9));
89
119
  }
90
120
  }
91
121
 
@@ -130,10 +160,16 @@
130
160
  }
131
161
  }
132
162
 
163
+ /* btn-neutral DEFAULTS to the surface-alt base / surface hover pair, token-
164
+ overridable the same way (--btn-neutral-*): turf-monster keeps its
165
+ brightness(1.3) hover by setting --btn-neutral-hover-filter and pinning
166
+ --btn-neutral-bg-hover back to the base so the fill does not change. */
133
167
  @utility btn-neutral {
134
- @apply bg-surface-alt text-heading border border-strong;
168
+ @apply text-heading border border-strong;
169
+ background-color: var(--btn-neutral-bg, var(--color-surface-alt));
135
170
  &:hover {
136
- @apply bg-surface;
171
+ background-color: var(--btn-neutral-bg-hover, var(--color-surface));
172
+ filter: var(--btn-neutral-hover-filter, none);
137
173
  }
138
174
  }
139
175
 
@@ -1,3 +1,3 @@
1
1
  module Studio
2
- VERSION = "0.14.0"
2
+ VERSION = "0.15.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: studio-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex McRitchie
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-07-22 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rails
@@ -298,7 +297,6 @@ metadata:
298
297
  source_code_uri: https://github.com/amcritchie/studio-engine/tree/main
299
298
  bug_tracker_uri: https://github.com/amcritchie/studio-engine/issues
300
299
  changelog_uri: https://github.com/amcritchie/studio-engine/blob/main/CHANGELOG.md
301
- post_install_message:
302
300
  rdoc_options: []
303
301
  require_paths:
304
302
  - lib
@@ -313,8 +311,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
313
311
  - !ruby/object:Gem::Version
314
312
  version: '0'
315
313
  requirements: []
316
- rubygems_version: 3.5.22
317
- signing_key:
314
+ rubygems_version: 4.0.9
318
315
  specification_version: 4
319
316
  summary: Shared Rails engine providing auth, SSO, error logging, theming, and S3-backed
320
317
  image caching