@trebired/frontend 14.0.0 → 14.2.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.
@@ -0,0 +1,167 @@
1
+ @use "@trebired/bundler/namespace" as ns;
2
+
3
+ #{ns.class("band")} {
4
+ display: flex;
5
+ flex-direction: column;
6
+ align-items: center;
7
+ padding-block: var(#{ns.css-var("surf-band-root-py")}, clamp(2.5rem, 5vw, 4rem));
8
+ padding-inline: var(#{ns.css-var("surf-band-root-px")}, clamp(1rem, 3vw, 2rem));
9
+ color: var(#{ns.css-var("surf-band-root-color")}, var(#{ns.css-var("text")}, #000));
10
+ background: var(#{ns.css-var("surf-band-root-bg")}, var(#{ns.css-var("page")}, #fff));
11
+ }
12
+
13
+ #{ns.class("band")} > * {
14
+ width: min(var(#{ns.css-var("surf-band-root-max")}, 80rem), 100%);
15
+ min-width: 0;
16
+ }
17
+
18
+ #{ns.class("band")}--muted {
19
+ color: var(#{ns.css-var("surf-band-tone-muted-color")}, var(#{ns.css-var("text")}, #000));
20
+ background: var(#{ns.css-var("surf-band-tone-muted-bg")}, var(#{ns.css-var("surface-muted")}, #eee));
21
+ }
22
+
23
+ #{ns.class("band")}--inverse {
24
+ #{ns.css-var("text-muted")}: var(
25
+ #{ns.css-var("surf-band-tone-inverse-text-muted")},
26
+ color-mix(in srgb, currentColor 62%, transparent)
27
+ );
28
+ color: var(#{ns.css-var("surf-band-tone-inverse-color")}, var(#{ns.css-var("page")}, #fff));
29
+ background: var(#{ns.css-var("surf-band-tone-inverse-bg")}, var(#{ns.css-var("text")}, #000));
30
+ }
31
+
32
+ #{ns.class("tile")} {
33
+ display: inline-flex;
34
+ flex: 0 0 auto;
35
+ align-items: center;
36
+ justify-content: center;
37
+ width: var(#{ns.css-var("surf-tile-root-size")}, 3rem);
38
+ height: var(#{ns.css-var("surf-tile-root-size")}, 3rem);
39
+ border-radius: var(#{ns.css-var("surf-tile-root-radius")}, var(#{ns.css-var("radius")}, 0));
40
+ color: var(#{ns.css-var("surf-tile-root-color")}, currentColor);
41
+ background: var(#{ns.css-var("surf-tile-root-bg")}, transparent);
42
+ transition: background-color var(#{ns.css-var("transition-fast")}, 180ms) ease,
43
+ color var(#{ns.css-var("transition-fast")}, 180ms) ease;
44
+ }
45
+
46
+ #{ns.class("tile")} .icon-glyph {
47
+ font-size: var(#{ns.css-var("surf-tile-root-glyph")}, 1.5rem);
48
+ }
49
+
50
+ #{ns.class("tile")}--sm {
51
+ #{ns.css-var("surf-tile-root-size")}: var(#{ns.css-var("surf-tile-sizes-sm-size")}, 2.5rem);
52
+ #{ns.css-var("surf-tile-root-glyph")}: var(#{ns.css-var("surf-tile-sizes-sm-glyph")}, 1rem);
53
+ }
54
+
55
+ #{ns.class("tile")}--lg {
56
+ #{ns.css-var("surf-tile-root-size")}: var(#{ns.css-var("surf-tile-sizes-lg-size")}, 4rem);
57
+ #{ns.css-var("surf-tile-root-glyph")}: var(#{ns.css-var("surf-tile-sizes-lg-glyph")}, 1.75rem);
58
+ }
59
+
60
+ #{ns.class("tile")}--muted {
61
+ color: var(#{ns.css-var("surf-tile-tone-muted-color")}, var(#{ns.css-var("text")}, #000));
62
+ background: var(#{ns.css-var("surf-tile-tone-muted-bg")}, var(#{ns.css-var("surface-muted")}, #eee));
63
+ }
64
+
65
+ #{ns.class("tile")}--inverse {
66
+ color: var(#{ns.css-var("surf-tile-tone-inverse-color")}, var(#{ns.css-var("page")}, #fff));
67
+ background: var(#{ns.css-var("surf-tile-tone-inverse-bg")}, var(#{ns.css-var("text")}, #000));
68
+ }
69
+
70
+ #{ns.class("tile")}--accent {
71
+ color: var(#{ns.css-var("surf-tile-tone-accent-color")}, var(#{ns.css-var("page")}, #fff));
72
+ background: var(#{ns.css-var("surf-tile-tone-accent-bg")}, var(#{ns.css-var("focus")}, #000));
73
+ }
74
+
75
+ #{ns.class("tile")}#{ns.data("tile-glyph", "accent")} {
76
+ color: var(#{ns.css-var("surf-tile-slot-glyph-accent")}, var(#{ns.css-var("focus")}, #000));
77
+ }
78
+
79
+ #{ns.class("rule")} {
80
+ border-inline-start: var(#{ns.css-var("surf-rule-root-width")}, 4px)
81
+ solid var(#{ns.css-var("surf-rule-root-color")}, currentColor);
82
+ padding-inline-start: var(#{ns.css-var("surf-rule-root-gap")}, 0.75rem);
83
+ }
84
+
85
+ #{ns.class("action-row")} {
86
+ display: flex;
87
+ align-items: center;
88
+ gap: var(#{ns.css-var("surf-action-row-root-gap")}, var(#{ns.css-var("gap-sm")}, 12px));
89
+ min-width: 0;
90
+ padding: var(#{ns.css-var("surf-action-row-root-padding")}, var(#{ns.css-var("gap-sm")}, 12px));
91
+ color: var(#{ns.css-var("surf-action-row-root-color")}, inherit);
92
+ background: var(#{ns.css-var("surf-action-row-root-bg")}, transparent);
93
+ transition: background-color var(#{ns.css-var("transition-fast")}, 180ms) ease,
94
+ color var(#{ns.css-var("transition-fast")}, 180ms) ease;
95
+ }
96
+
97
+ #{ns.element-class("action-row", "body")} {
98
+ display: grid;
99
+ gap: var(#{ns.css-var("surf-action-row-body-gap")}, var(#{ns.css-var("gap-xs2")}, 4px));
100
+ min-width: 0;
101
+ }
102
+
103
+ #{ns.element-class("action-row", "value")} {
104
+ overflow-wrap: anywhere;
105
+ color: var(#{ns.css-var("surf-action-row-value-color")}, inherit);
106
+ font-size: var(#{ns.css-var("surf-action-row-value-font-size")}, 1.25rem);
107
+ font-weight: var(#{ns.css-var("surf-action-row-value-font-weight")}, 700);
108
+ transition: color var(#{ns.css-var("transition-fast")}, 180ms) ease;
109
+ }
110
+
111
+ #{ns.element-class("action-row", "arrow")} {
112
+ flex: 0 0 auto;
113
+ margin-inline-start: auto;
114
+ color: var(#{ns.css-var("surf-action-row-arrow-color")}, var(#{ns.css-var("text-muted")}, #666));
115
+ transition: color var(#{ns.css-var("transition-fast")}, 180ms) ease;
116
+ }
117
+
118
+ #{ns.element-class("action-row", "arrow")} .icon-glyph {
119
+ font-size: var(#{ns.css-var("surf-action-row-arrow-glyph")}, 1.25rem);
120
+ }
121
+
122
+ @media (hover: hover) and (pointer: fine) {
123
+ #{ns.class("action-row")}#{ns.data("interactive", "true")}:hover {
124
+ color: var(#{ns.css-var("surf-action-row-state-hover-color")}, inherit);
125
+ background: var(#{ns.css-var("surf-action-row-state-hover-bg")}, transparent);
126
+ }
127
+
128
+ #{ns.class("action-row")}#{ns.data("interactive", "true")}:hover
129
+ #{ns.element-class("action-row", "value")},
130
+ #{ns.class("action-row")}#{ns.data("interactive", "true")}:hover
131
+ #{ns.element-class("action-row", "arrow")} {
132
+ color: var(#{ns.css-var("surf-action-row-state-hover-color")}, inherit);
133
+ }
134
+ }
135
+
136
+ #{ns.class("tile")}--surface {
137
+ color: var(#{ns.css-var("surf-tile-tone-surface-color")}, var(#{ns.css-var("text")}, #000));
138
+ background: var(#{ns.css-var("surf-tile-tone-surface-bg")}, var(#{ns.css-var("surface")}, #fff));
139
+ }
140
+
141
+ #{ns.class("tag")} {
142
+ display: inline-flex;
143
+ flex: 0 0 auto;
144
+ align-items: center;
145
+ justify-content: center;
146
+ gap: var(#{ns.css-var("surf-tag-root-gap")}, var(#{ns.css-var("gap-xs2")}, 4px));
147
+ padding: var(#{ns.css-var("surf-tag-root-padding")}, 0.5rem 0.75rem);
148
+ border-radius: var(#{ns.css-var("surf-tag-root-radius")}, var(#{ns.css-var("radius")}, 0));
149
+ color: var(#{ns.css-var("surf-tag-root-color")}, var(#{ns.css-var("text")}, #000));
150
+ background: var(#{ns.css-var("surf-tag-root-bg")}, var(#{ns.css-var("surface-muted")}, #eee));
151
+ font-size: var(#{ns.css-var("surf-tag-root-font-size")}, 0.75rem);
152
+ font-weight: var(#{ns.css-var("surf-tag-root-font-weight")}, 700);
153
+ letter-spacing: var(#{ns.css-var("surf-tag-root-letter-spacing")}, 0.02em);
154
+ line-height: 1;
155
+ text-transform: var(#{ns.css-var("surf-tag-root-text-transform")}, none);
156
+ white-space: nowrap;
157
+ }
158
+
159
+ #{ns.class("tag")}--inverse {
160
+ color: var(#{ns.css-var("surf-tag-tone-inverse-color")}, var(#{ns.css-var("page")}, #fff));
161
+ background: var(#{ns.css-var("surf-tag-tone-inverse-bg")}, var(#{ns.css-var("text")}, #000));
162
+ }
163
+
164
+ #{ns.class("tag")}--accent {
165
+ color: var(#{ns.css-var("surf-tag-tone-accent-color")}, var(#{ns.css-var("page")}, #fff));
166
+ background: var(#{ns.css-var("surf-tag-tone-accent-bg")}, var(#{ns.css-var("focus")}, #000));
167
+ }
@@ -1,4 +1,5 @@
1
1
  @use "@trebired/bundler/namespace" as ns;
2
+ @use "./blocks";
2
3
  @use "./hairline";
3
4
  @use "./layout";
4
5
  #{ns.class("button")} {
@@ -200,6 +201,29 @@
200
201
  border-color: var(#{ns.css-var("surf-card-state-hover-border")}, var(#{ns.css-var("focus")}, #000));
201
202
  }
202
203
 
204
+ #{ns.class("card")}--muted {
205
+ color: var(#{ns.css-var("surf-card-tone-muted-color")}, var(#{ns.css-var("text")}, #000));
206
+ background: var(#{ns.css-var("surf-card-tone-muted-bg")}, var(#{ns.css-var("surface-muted")}, #eee));
207
+ }
208
+
209
+ #{ns.class("card")}--inverse {
210
+ #{ns.css-var("text-muted")}: var(
211
+ #{ns.css-var("surf-card-tone-inverse-text-muted")},
212
+ color-mix(in srgb, currentColor 62%, transparent)
213
+ );
214
+ color: var(#{ns.css-var("surf-card-tone-inverse-color")}, var(#{ns.css-var("page")}, #fff));
215
+ background: var(#{ns.css-var("surf-card-tone-inverse-bg")}, var(#{ns.css-var("text")}, #000));
216
+ }
217
+
218
+ #{ns.class("card")}--accent {
219
+ #{ns.css-var("text-muted")}: var(
220
+ #{ns.css-var("surf-card-tone-accent-text-muted")},
221
+ color-mix(in srgb, currentColor 70%, transparent)
222
+ );
223
+ color: var(#{ns.css-var("surf-card-tone-accent-color")}, var(#{ns.css-var("page")}, #fff));
224
+ background: var(#{ns.css-var("surf-card-tone-accent-bg")}, var(#{ns.css-var("focus")}, #000));
225
+ }
226
+
203
227
  #{ns.element-class("card", "header")},
204
228
 
205
229
  #{ns.element-class("card", "body")},
@@ -83,6 +83,69 @@
83
83
  z-index: 1;
84
84
  }
85
85
 
86
+ #{ns.element-class("frame", "cover")} {
87
+ position: absolute;
88
+ inset: 0;
89
+ width: 100%;
90
+ height: 100%;
91
+ object-fit: cover;
92
+ object-position: var(#{ns.css-var("surf-frame-cover-position")}, 50% 50%);
93
+ transition: transform var(#{ns.css-var("surf-frame-cover-duration")}, 700ms) ease;
94
+ }
95
+
96
+ #{ns.element-class("frame", "scrim")} {
97
+ position: absolute;
98
+ inset: 0;
99
+ z-index: 1;
100
+ background: var(
101
+ #{ns.css-var("surf-frame-scrim-bg")},
102
+ linear-gradient(to top, color-mix(in srgb, var(#{ns.css-var("text")}, #000) 65%, transparent), transparent 60%)
103
+ );
104
+ pointer-events: none;
105
+ }
106
+
107
+ #{ns.element-class("frame", "caption")} {
108
+ position: absolute;
109
+ inset-block-end: 0;
110
+ inset-inline: 0;
111
+ z-index: 2;
112
+ display: grid;
113
+ gap: var(#{ns.css-var("surf-frame-caption-gap")}, var(#{ns.css-var("gap-xs2")}, 4px));
114
+ padding: var(#{ns.css-var("surf-frame-caption-padding")}, var(#{ns.css-var("gap-sm")}, 12px));
115
+ color: var(#{ns.css-var("surf-frame-caption-color")}, var(#{ns.css-var("page")}, #fff));
116
+ background: var(#{ns.css-var("surf-frame-caption-bg")}, transparent);
117
+ }
118
+
119
+ #{ns.element-class("frame", "action")} {
120
+ position: absolute;
121
+ inset-block-end: var(#{ns.css-var("surf-frame-action-offset")}, 1rem);
122
+ inset-inline-end: var(#{ns.css-var("surf-frame-action-offset")}, 1rem);
123
+ z-index: 2;
124
+ display: flex;
125
+ align-items: center;
126
+ justify-content: center;
127
+ width: var(#{ns.css-var("surf-frame-action-size")}, 3rem);
128
+ height: var(#{ns.css-var("surf-frame-action-size")}, 3rem);
129
+ border-radius: var(#{ns.css-var("surf-frame-action-radius")}, var(#{ns.css-var("radius")}, 0));
130
+ color: var(#{ns.css-var("surf-frame-action-color")}, var(#{ns.css-var("text")}, #000));
131
+ background: var(#{ns.css-var("surf-frame-action-bg")}, var(#{ns.css-var("page")}, #fff));
132
+ transition: background-color var(#{ns.css-var("transition-fast")}, 180ms) ease,
133
+ color var(#{ns.css-var("transition-fast")}, 180ms) ease;
134
+ }
135
+
136
+ #{ns.element-class("frame", "action")} .icon-glyph {
137
+ font-size: var(#{ns.css-var("surf-frame-action-glyph")}, 1.5rem);
138
+ }
139
+
140
+ #{ns.class("card")}#{ns.data("interactive", "true")}:hover #{ns.element-class("frame", "action")} {
141
+ color: var(#{ns.css-var("surf-frame-action-state-hover-color")}, var(#{ns.css-var("page")}, #fff));
142
+ background: var(#{ns.css-var("surf-frame-action-state-hover-bg")}, var(#{ns.css-var("focus")}, #000));
143
+ }
144
+
145
+ #{ns.class("card")}#{ns.data("interactive", "true")}:hover #{ns.element-class("frame", "cover")} {
146
+ transform: scale(var(#{ns.css-var("surf-frame-cover-state-hover-scale")}, 1.05));
147
+ }
148
+
86
149
  #{ns.class("logo")} {
87
150
  display: inline-flex;
88
151
  flex: 0 1 auto;
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  }
9
9
  },
10
10
  "name": "@trebired/frontend",
11
- "version": "14.0.0",
11
+ "version": "14.2.0",
12
12
  "description": "Generic browser runtime systems for Trebired frontend packages and applications.",
13
13
  "type": "module",
14
14
  "private": false,