@1001-digital/layers.base 0.0.6 → 0.0.8

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.
@@ -1,14 +1,14 @@
1
1
  /*
2
2
  * CSS Layers Order Definition
3
3
  * This establishes the cascade priority:
4
- * reset < base < components < utilities
4
+ * variables, reset < base < components < utilities
5
5
  */
6
- @layer reset, base, components, utilities;
6
+ @layer variables, reset, base, components, utilities;
7
7
 
8
8
  /*
9
9
  * CSS Custom Properties (outside layers for proper cascade)
10
10
  */
11
- @import './variables/index.css';
11
+ @import './variables/index.css' layer(variables);
12
12
 
13
13
  /*
14
14
  * Reset Layer - Modern Normalize
@@ -28,66 +28,70 @@ const dismiss = () => {
28
28
  </script>
29
29
 
30
30
  <style>
31
- :root {
32
- --alert-color: var(--color);
33
- --alert-background-color: transparent;
34
- --alert-border-color: var(--border-color);
31
+ @layer variables {
32
+ :root {
33
+ --alert-color: var(--color);
34
+ --alert-background-color: transparent;
35
+ --alert-border-color: var(--border-color);
35
36
 
36
- --alert-info-color: var(--alert-color);
37
- --alert-info-background-color: var(--alert-background-color);
38
- --alert-info-border-color: var(--alert-border-color);
37
+ --alert-info-color: var(--alert-color);
38
+ --alert-info-background-color: var(--alert-background-color);
39
+ --alert-info-border-color: var(--alert-border-color);
39
40
 
40
- --alert-error-color: var(--error);
41
- --alert-error-background-color: color-mix(in srgb, var(--error) 10%, transparent);
42
- --alert-error-border-color: var(--error);
41
+ --alert-error-color: var(--error);
42
+ --alert-error-background-color: color-mix(in srgb, var(--error) 10%, transparent);
43
+ --alert-error-border-color: var(--error);
44
+ }
43
45
  }
44
46
  </style>
45
47
 
46
48
  <style scoped>
47
- .alert {
48
- position: relative;
49
- display: grid;
50
- padding: var(--spacer-sm);
51
- gap: var(--spacer-sm);
52
- border: var(--border);
53
- border-color: var(--alert-border-color);
54
- background-color: var(--alert-background-color);
55
- color: var(--alert-color);
56
- font-family: var(--font-family);
57
- font-size: var(--ui-font-size);
58
- text-transform: var(--ui-text-transform);
59
-
60
- &.info {
61
- border-color: var(--alert-info-border-color);
62
- background-color: var(--alert-info-background-color);
63
- color: var(--alert-info-color);
64
- }
49
+ @layer components {
50
+ .alert {
51
+ position: relative;
52
+ display: grid;
53
+ padding: var(--spacer-sm);
54
+ gap: var(--spacer-sm);
55
+ border: var(--border);
56
+ border-color: var(--alert-border-color);
57
+ background-color: var(--alert-background-color);
58
+ color: var(--alert-color);
59
+ font-family: var(--font-family);
60
+ font-size: var(--ui-font-size);
61
+ text-transform: var(--ui-text-transform);
65
62
 
66
- &.error {
67
- border-color: var(--alert-error-border-color);
68
- background-color: var(--alert-error-background-color);
69
- color: var(--alert-error-color);
70
- }
63
+ &.info {
64
+ border-color: var(--alert-info-border-color);
65
+ background-color: var(--alert-info-background-color);
66
+ color: var(--alert-info-color);
67
+ }
71
68
 
72
- :deep(> h1) {
73
- text-transform: uppercase;
74
- font-weight: bold;
75
- }
69
+ &.error {
70
+ border-color: var(--alert-error-border-color);
71
+ background-color: var(--alert-error-background-color);
72
+ color: var(--alert-error-color);
73
+ }
76
74
 
77
- .close {
78
- display: flex;
79
- align-items: center;
80
- justify-content: center;
81
- position: absolute;
82
- inline-size: var(--size-4);
83
- block-size: var(--size-4);
84
- padding: 0;
85
- inset-block-start: var(--spacer-sm);
86
- inset-inline-end: var(--spacer-sm);
87
- background: none;
75
+ :deep(> h1) {
76
+ text-transform: uppercase;
77
+ font-weight: bold;
78
+ }
88
79
 
89
- &:is(:hover, :active, :focus, .active) {
80
+ .close {
81
+ display: flex;
82
+ align-items: center;
83
+ justify-content: center;
84
+ position: absolute;
85
+ inline-size: var(--size-4);
86
+ block-size: var(--size-4);
87
+ padding: 0;
88
+ inset-block-start: var(--spacer-sm);
89
+ inset-inline-end: var(--spacer-sm);
90
90
  background: none;
91
+
92
+ &:is(:hover, :active, :focus, .active) {
93
+ background: none;
94
+ }
91
95
  }
92
96
  }
93
97
  }
@@ -20,196 +20,201 @@ withDefaults(defineProps<{
20
20
  </script>
21
21
 
22
22
  <style>
23
- :root {
24
- --button-border-radius: var(--border-radius);
25
- --button-background: var(--background);
26
- --button-background-highlight: var(--gray-z-1);
27
- --button-border-color-highlight: var(--gray-z-3);
28
- --button-color: var(--color);
29
- --button-color-highlight: var(--color);
30
- --button-icon-color: var(--muted);
31
- --button-icon-color-highlight: var(--color);
32
-
33
- /* Primary Button Styles */
34
- --button-primary-background: var(--gray-z-10);
35
- --button-primary-border-color: var(--gray-z-8);
36
- --button-primary-color: var(--gray-z-0);
37
- --button-primary-background-highlight: var(--gray-z-8);
38
- --button-primary-border-color-highlight: var(--gray-z-6);
39
- --button-primary-color-highlight: var(--gray-z-0);
23
+ @layer variables {
24
+ :root {
25
+ --button-border-radius: var(--border-radius);
26
+ --button-background: var(--background);
27
+ --button-background-highlight: var(--gray-z-1);
28
+ --button-border-color-highlight: var(--gray-z-3);
29
+ --button-color: var(--color);
30
+ --button-color-highlight: var(--color);
31
+ --button-icon-color: var(--muted);
32
+ --button-icon-color-highlight: var(--color);
33
+
34
+ /* Primary Button Styles */
35
+ --button-primary-background: var(--gray-z-10);
36
+ --button-primary-border-color: var(--gray-z-8);
37
+ --button-primary-color: var(--gray-z-0);
38
+ --button-primary-background-highlight: var(--gray-z-8);
39
+ --button-primary-border-color-highlight: var(--gray-z-6);
40
+ --button-primary-color-highlight: var(--gray-z-0);
41
+ }
40
42
  }
41
43
  </style>
42
44
 
43
45
  <style scoped>
44
- button,
45
- a.button {
46
- position: relative;
47
- min-inline-size: fit-content;
48
- inline-size: fit-content;
49
- display: inline-flex;
50
- justify-content: center;
51
- align-items: center;
52
- gap: var(--spacer-sm);
53
-
54
- &:not(.unstyled) {
55
- background: var(--button-background);
56
- color: var(--button-color);
57
- padding: var(--ui-padding-block) var(--ui-padding-inline);
58
- border: none;
59
- border-radius: var(--button-border-radius);
60
- box-shadow: var(--border-shadow);
61
- transition:
62
- background var(--speed),
63
- box-shadow var(--speed),
64
- color var(--speed);
65
- }
46
+ @layer components {
66
47
 
67
- >span {
68
- display: flex;
69
- gap: var(--ui-padding-inline);
70
- line-height: var(--ui-line-height);
48
+ button,
49
+ a.button {
50
+ position: relative;
51
+ min-inline-size: fit-content;
52
+ inline-size: fit-content;
53
+ display: inline-flex;
71
54
  justify-content: center;
72
- text-align: center;
73
55
  align-items: center;
74
- inline-size: 100%;
75
- block-size: 100%;
76
- }
77
-
78
- >.icon {
79
- color: var(--button-icon-color);
80
- transition: color var(--speed);
81
- }
82
-
83
- &:has(> .icon:first-child) {
84
- padding-inline-start: calc(var(--ui-padding-inline) - var(--size-1));
85
-
86
- &.small {
87
- padding-inline-start: calc(var(--ui-padding-inline) / 2);
56
+ gap: var(--spacer-sm);
57
+
58
+ &:not(.unstyled) {
59
+ background: var(--button-background);
60
+ color: var(--button-color);
61
+ padding: var(--ui-padding-block) var(--ui-padding-inline);
62
+ border: none;
63
+ border-radius: var(--button-border-radius);
64
+ box-shadow: var(--border-shadow);
65
+ transition:
66
+ background var(--speed),
67
+ box-shadow var(--speed),
68
+ color var(--speed);
88
69
  }
89
- }
90
70
 
91
- &:has(> .icon:first-child:last-child) {
92
- padding: var(--ui-padding-block);
93
- aspect-ratio: 1;
71
+ >span {
72
+ display: flex;
73
+ gap: var(--ui-padding-inline);
74
+ line-height: var(--ui-line-height);
75
+ justify-content: center;
76
+ text-align: center;
77
+ align-items: center;
78
+ inline-size: 100%;
79
+ block-size: 100%;
80
+ }
94
81
 
95
- &.small {
96
- padding: calc(var(--ui-padding-block) / 2);
82
+ >.icon {
83
+ color: var(--button-icon-color);
84
+ transition: color var(--speed);
97
85
  }
98
- }
99
86
 
100
- &.non-interactive,
101
- &[disabled]:not([disabled='false']) {
102
- pointer-events: none;
103
- }
87
+ &:has(> .icon:first-child) {
88
+ padding-inline-start: calc(var(--ui-padding-inline) - var(--size-1));
104
89
 
105
- &[disabled]:not([disabled='false']) {
106
- color: var(--muted);
107
- opacity: 0.5;
108
- }
90
+ &.small {
91
+ padding-inline-start: calc(var(--ui-padding-inline) / 2);
92
+ }
93
+ }
109
94
 
110
- &.small {
111
- padding: calc(var(--ui-padding-block) / 2) calc(var(--ui-padding-inline) / 2);
112
- min-block-size: 0;
95
+ &:has(> .icon:first-child:last-child) {
96
+ padding: var(--ui-padding-block);
97
+ aspect-ratio: 1;
113
98
 
114
- >.icon {
115
- inline-size: var(--size-3);
116
- block-size: var(--size-3);
99
+ &.small {
100
+ padding: calc(var(--ui-padding-block) / 2);
101
+ }
117
102
  }
118
- }
119
-
120
- &.link {
121
- box-shadow: none;
122
- background: transparent;
123
- line-height: inherit;
124
- color: var(--color);
125
- padding: 0;
126
103
 
127
- >.icon {
128
- align-self: center;
129
- block-size: 1em;
130
- inline-size: 1em;
104
+ &.non-interactive,
105
+ &[disabled]:not([disabled='false']) {
106
+ pointer-events: none;
131
107
  }
132
108
 
133
- &.muted {
109
+ &[disabled]:not([disabled='false']) {
134
110
  color: var(--muted);
111
+ opacity: 0.5;
112
+ }
113
+
114
+ &.small {
115
+ padding: calc(var(--ui-padding-block) / 2) calc(var(--ui-padding-inline) / 2);
116
+ min-block-size: 0;
135
117
 
136
118
  >.icon {
137
- color: var(--muted);
119
+ inline-size: var(--size-3);
120
+ block-size: var(--size-3);
138
121
  }
139
122
  }
140
- }
141
123
 
142
- &.inline {
143
- display: inline-flex;
144
- align-self: baseline;
145
- align-items: baseline;
146
- block-size: inherit;
147
- margin: 0 !important;
148
- padding: 0 var(--size-1) !important;
149
- gap: 0.2em;
150
- inline-size: min-content;
151
- }
124
+ &.link {
125
+ box-shadow: none;
126
+ background: transparent;
127
+ line-height: inherit;
128
+ color: var(--color);
129
+ padding: 0;
152
130
 
153
- &.invisible {
154
- position: absolute;
155
- inset-inline-start: -200vw;
156
- opacity: 0;
157
- }
131
+ >.icon {
132
+ align-self: center;
133
+ block-size: 1em;
134
+ inline-size: 1em;
135
+ }
158
136
 
159
- &.danger {
160
- box-shadow: 0 0 0 var(--border-width) var(--error);
161
- color: var(--error) !important;
137
+ &.muted {
138
+ color: var(--muted);
162
139
 
163
- >.icon {
164
- color: var(--error);
140
+ >.icon {
141
+ color: var(--muted);
142
+ }
143
+ }
165
144
  }
166
- }
167
145
 
168
- /* Primary variant */
169
- &.primary {
170
- background: var(--button-primary-background);
171
- box-shadow: 0 0 0 var(--border-width) var(--button-primary-border-color);
172
- color: var(--button-primary-color);
146
+ &.inline {
147
+ display: inline-flex;
148
+ align-self: baseline;
149
+ align-items: baseline;
150
+ block-size: inherit;
151
+ margin: 0 !important;
152
+ padding: 0 var(--size-1) !important;
153
+ gap: 0.2em;
154
+ inline-size: min-content;
155
+ }
173
156
 
174
- >.icon {
175
- color: var(--button-primary-color);
157
+ &.invisible {
158
+ position: absolute;
159
+ inset-inline-start: -200vw;
160
+ opacity: 0;
176
161
  }
177
162
 
178
- &:is(:hover, :active, :focus, .active) {
179
- background: var(--button-primary-background-highlight);
180
- box-shadow: 0 0 0 var(--border-width) var(--button-primary-border-color-highlight);
181
- color: var(--button-primary-color-highlight);
163
+ &.danger {
164
+ box-shadow: 0 0 0 var(--border-width) var(--error);
165
+ color: var(--error) !important;
182
166
 
183
167
  >.icon {
184
- color: var(--button-primary-color-highlight);
168
+ color: var(--error);
185
169
  }
186
170
  }
187
- }
188
171
 
189
- &:is(:hover, :active, :focus, .active) {
190
- background: var(--button-background-highlight);
191
- box-shadow: var(--border-shadow-highlight);
192
- color: var(--button-color-highlight);
172
+ /* Primary variant */
173
+ &.primary {
174
+ background: var(--button-primary-background);
175
+ box-shadow: 0 0 0 var(--border-width) var(--button-primary-border-color);
176
+ color: var(--button-primary-color);
193
177
 
194
- >.icon {
195
- color: var(--button-icon-color-highlight);
178
+ >.icon {
179
+ color: var(--button-primary-color);
180
+ }
181
+
182
+ &:is(:hover, :active, :focus, .active) {
183
+ background: var(--button-primary-background-highlight);
184
+ box-shadow: 0 0 0 var(--border-width) var(--button-primary-border-color-highlight);
185
+ color: var(--button-primary-color-highlight);
186
+
187
+ >.icon {
188
+ color: var(--button-primary-color-highlight);
189
+ }
190
+ }
196
191
  }
197
192
 
198
- &.link {
199
- background: transparent !important;
200
- box-shadow: none;
201
- color: var(--color);
193
+ &:is(:hover, :active, :focus, .active) {
194
+ background: var(--button-background-highlight);
195
+ box-shadow: var(--border-shadow-highlight);
196
+ color: var(--button-color-highlight);
202
197
 
203
198
  >.icon {
204
- color: var(--gray-z-7);
199
+ color: var(--button-icon-color-highlight);
205
200
  }
206
201
 
207
- &.muted {
202
+ &.link {
203
+ background: transparent !important;
204
+ box-shadow: none;
208
205
  color: var(--color);
209
206
 
210
207
  >.icon {
211
208
  color: var(--gray-z-7);
212
209
  }
210
+
211
+ &.muted {
212
+ color: var(--color);
213
+
214
+ >.icon {
215
+ color: var(--gray-z-7);
216
+ }
217
+ }
213
218
  }
214
219
  }
215
220
  }
@@ -5,67 +5,73 @@
5
5
  </template>
6
6
 
7
7
  <style>
8
- :root {
9
- --card-border-radius: var(--border-radius);
10
- --card-border: var(--border);
11
- --card-background: var(--background);
12
- --card-background-highlight: var(--gray-z-1);
13
- --card-border-color-highlight: var(--gray-z-3);
8
+ @layer variables {
9
+ :root {
10
+ --card-border-radius: var(--border-radius);
11
+ --card-border: var(--border);
12
+ --card-background: var(--background);
13
+ --card-background-highlight: var(--gray-z-1);
14
+ --card-border-color-highlight: var(--gray-z-3);
15
+ }
14
16
  }
15
17
  </style>
16
18
 
17
19
  <style scoped>
18
- .card {
19
- display: grid;
20
- gap: var(--spacer);
21
- background-color: var(--card-background);
22
- block-size: 100%;
23
- padding: var(--spacer);
24
- transition:
25
- background var(--speed),
26
- border-color var(--speed);
20
+ @layer components {
21
+ .card {
22
+ display: grid;
23
+ gap: var(--spacer);
24
+ background-color: var(--card-background);
25
+ block-size: 100%;
26
+ padding: var(--spacer);
27
+ transition:
28
+ background var(--speed),
29
+ border-color var(--speed);
30
+
31
+ &:not(.borderless) {
32
+ border: var(--card-border);
33
+ border-radius: var(--card-border-radius);
27
34
 
28
- &:not(.borderless) {
29
- border: var(--card-border);
30
- border-radius: var(--card-border-radius);
35
+ &:has(> .card-link) {
36
+
37
+ &:has(> .card-link:hover),
38
+ &:has(> .card-link:focus) {
39
+ border-color: var(--card-border-color-highlight);
40
+ }
41
+ }
42
+ }
43
+
44
+ &.borderless {
45
+ padding: 0;
46
+ }
31
47
 
32
48
  &:has(> .card-link) {
49
+
33
50
  &:has(> .card-link:hover),
34
51
  &:has(> .card-link:focus) {
35
- border-color: var(--card-border-color-highlight);
52
+ background-color: var(--card-background-highlight);
36
53
  }
37
54
  }
38
- }
39
55
 
40
- &.borderless {
41
- padding: 0;
42
- }
56
+ &.static {
57
+ background-color: var(--card-background);
58
+ }
43
59
 
44
- &:has(> .card-link) {
45
- &:has(> .card-link:hover),
46
- &:has(> .card-link:focus) {
60
+ &.highlight {
47
61
  background-color: var(--card-background-highlight);
48
62
  }
49
- }
50
-
51
- &.static {
52
- background-color: var(--card-background);
53
- }
54
63
 
55
- &.highlight {
56
- background-color: var(--card-background-highlight);
57
- }
58
-
59
- > * {
60
- inline-size: 100%;
61
- place-self: center;
64
+ >* {
65
+ inline-size: 100%;
66
+ place-self: center;
62
67
 
63
- &:first-child {
64
- place-self: flex-start;
65
- }
68
+ &:first-child {
69
+ place-self: flex-start;
70
+ }
66
71
 
67
- &:last-child {
68
- place-self: flex-end;
72
+ &:last-child {
73
+ place-self: flex-end;
74
+ }
69
75
  }
70
76
  }
71
77
  }
@@ -88,144 +88,148 @@ watchEffect(() => (open.value ? show() : hide()))
88
88
  </script>
89
89
 
90
90
  <style>
91
- :root {
92
- --dialog-initial-x-offset: 0;
93
- --dialog-initial-y-offset: var(--spacer);
94
- --dialog-x-offset: 0;
95
- --dialog-y-offset: 0;
96
- --backdrop-background-color: transparent;
97
- }
98
-
99
- .dialog {
100
- padding: var(--spacer);
101
- padding-block-start: calc(var(--spacer) * 3);
102
- max-inline-size: min(var(--dialog-width, 32rem), calc(100vw - var(--spacer) * 2));
103
- inline-size: 100%;
104
- background: var(--background);
105
- color: var(--color);
106
- border: var(--border);
107
- border-radius: var(--border-radius);
108
- overscroll-behavior: contain;
109
- block-size: 0;
110
- min-block-size: min-content;
111
- max-block-size: 100dvh;
112
- container-type: inline-size;
113
- display: grid;
114
- gap: var(--spacer);
115
-
116
- /* Entry/exit animations */
117
- opacity: 1;
118
- transform: scale(1);
119
- transition:
120
- opacity var(--speed) ease,
121
- transform var(--speed) ease,
122
- overlay var(--speed) ease allow-discrete,
123
- display var(--speed) ease allow-discrete;
124
-
125
- @starting-style {
126
- opacity: 0;
127
- transform: scale(0.95);
91
+ @layer variables {
92
+ :root {
93
+ --dialog-initial-x-offset: 0;
94
+ --dialog-initial-y-offset: var(--spacer);
95
+ --dialog-x-offset: 0;
96
+ --dialog-y-offset: 0;
97
+ --backdrop-background-color: transparent;
128
98
  }
99
+ }
129
100
 
130
- /* Exit animation */
131
- &:not([open]):not(:popover-open) {
132
- opacity: 0;
133
- transform: scale(0.95);
134
- }
101
+ @layer components {
102
+ .dialog {
103
+ padding: var(--spacer);
104
+ padding-block-start: calc(var(--spacer) * 3);
105
+ max-inline-size: min(var(--dialog-width, 32rem), calc(100vw - var(--spacer) * 2));
106
+ inline-size: 100%;
107
+ background: var(--background);
108
+ color: var(--color);
109
+ border: var(--border);
110
+ border-radius: var(--border-radius);
111
+ overscroll-behavior: contain;
112
+ block-size: 0;
113
+ min-block-size: min-content;
114
+ max-block-size: 100dvh;
115
+ container-type: inline-size;
116
+ display: grid;
117
+ gap: var(--spacer);
135
118
 
136
- &::backdrop {
137
- background-color: var(--backdrop-background-color);
138
- backdrop-filter: var(--blur);
119
+ /* Entry/exit animations */
120
+ opacity: 1;
121
+ transform: scale(1);
139
122
  transition:
140
- background-color var(--speed) ease,
141
- backdrop-filter var(--speed) ease,
123
+ opacity var(--speed) ease,
124
+ transform var(--speed) ease,
142
125
  overlay var(--speed) ease allow-discrete,
143
126
  display var(--speed) ease allow-discrete;
144
127
 
145
128
  @starting-style {
146
- background-color: transparent;
129
+ opacity: 0;
130
+ transform: scale(0.95);
147
131
  }
148
- }
149
132
 
150
- @media (--md) {
151
- max-block-size: calc(100dvh - var(--spacer) * 2);
152
- }
133
+ /* Exit animation */
134
+ &:not([open]):not(:popover-open) {
135
+ opacity: 0;
136
+ transform: scale(0.95);
137
+ }
153
138
 
154
- &.compat {
155
- position: fixed;
156
- transform: translate(-50%, -50%);
139
+ &::backdrop {
140
+ background-color: var(--backdrop-background-color);
141
+ backdrop-filter: var(--blur);
142
+ transition:
143
+ background-color var(--speed) ease,
144
+ backdrop-filter var(--speed) ease,
145
+ overlay var(--speed) ease allow-discrete,
146
+ display var(--speed) ease allow-discrete;
147
+
148
+ @starting-style {
149
+ background-color: transparent;
150
+ }
151
+ }
157
152
 
158
- &.open {
159
- inset-block-start: 50%;
160
- inset-inline-start: 50%;
161
- z-index: var(--z-index-dialog);
153
+ @media (--md) {
154
+ max-block-size: calc(100dvh - var(--spacer) * 2);
155
+ }
162
156
 
163
- +.overlay {
164
- position: fixed;
165
- inset: 0;
166
- z-index: var(--z-index-overlay);
167
- background: var(--backdrop-background-color);
157
+ &.compat {
158
+ position: fixed;
159
+ transform: translate(-50%, -50%);
160
+
161
+ &.open {
162
+ inset-block-start: 50%;
163
+ inset-inline-start: 50%;
164
+ z-index: var(--z-index-dialog);
165
+
166
+ +.overlay {
167
+ position: fixed;
168
+ inset: 0;
169
+ z-index: var(--z-index-overlay);
170
+ background: var(--backdrop-background-color);
171
+ }
168
172
  }
169
173
  }
170
- }
171
174
 
172
- &:focus {
173
- outline: none;
174
- }
175
+ &:focus {
176
+ outline: none;
177
+ }
175
178
 
176
- >.close {
177
- position: absolute;
178
- inset-block-start: 0;
179
- inset-inline-end: 0;
180
- block-size: calc(var(--spacer) * 2);
181
- inline-size: calc(var(--spacer) * 2);
182
- border-inline-start: var(--border);
183
- border-block-end: var(--border);
184
- display: flex;
185
- align-items: center;
186
- justify-content: center;
187
- padding: 0;
188
- z-index: 10;
189
- background: var(--background);
179
+ >.close {
180
+ position: absolute;
181
+ inset-block-start: 0;
182
+ inset-inline-end: 0;
183
+ block-size: calc(var(--spacer) * 2);
184
+ inline-size: calc(var(--spacer) * 2);
185
+ border-inline-start: var(--border);
186
+ border-block-end: var(--border);
187
+ display: flex;
188
+ align-items: center;
189
+ justify-content: center;
190
+ padding: 0;
191
+ z-index: 10;
192
+ background: var(--background);
193
+
194
+ &:is(:hover, :active, :focus, .active) {
195
+ outline: none;
196
+ }
197
+ }
190
198
 
191
- &:is(:hover, :active, :focus, .active) {
192
- outline: none;
199
+ >h1:first-of-type {
200
+ inline-size: 100%;
201
+ border-block-end: var(--border);
202
+ block-size: calc(var(--spacer) * 2);
203
+ position: absolute;
204
+ inset-block-start: 0;
205
+ inset-inline-start: 0;
206
+ padding: 0 0 0 var(--spacer);
207
+ display: flex;
208
+ align-items: center;
209
+ margin: 0;
210
+ font-family: var(--font-family);
211
+ font-size: var(--ui-font-size);
212
+ text-transform: var(--ui-text-transform);
213
+ background: var(--background);
193
214
  }
194
- }
195
215
 
196
- >h1:first-of-type {
197
- inline-size: 100%;
198
- border-block-end: var(--border);
199
- block-size: calc(var(--spacer) * 2);
200
- position: absolute;
201
- inset-block-start: 0;
202
- inset-inline-start: 0;
203
- padding: 0 0 0 var(--spacer);
204
- display: flex;
205
- align-items: center;
206
- margin: 0;
207
- font-family: var(--font-family);
208
- font-size: var(--ui-font-size);
209
- text-transform: var(--ui-text-transform);
210
- background: var(--background);
211
- }
216
+ >.actions {
217
+ margin-block-start: var(--spacer);
218
+ display: flex;
219
+ gap: var(--spacer);
220
+ justify-content: flex-end;
221
+ }
212
222
 
213
- >.actions {
214
- margin-block-start: var(--spacer);
215
- display: flex;
216
- gap: var(--spacer);
217
- justify-content: flex-end;
223
+ &.large {
224
+ --dialog-width: min(90vw, 64rem);
225
+ }
218
226
  }
219
227
 
220
- &.large {
221
- --dialog-width: min(90vw, 64rem);
228
+ html:has(dialog[open]),
229
+ body:has(dialog[open]),
230
+ html:has(.dialog.open),
231
+ body:has(.dialog.open) {
232
+ overflow: hidden;
222
233
  }
223
234
  }
224
-
225
- html:has(dialog[open]),
226
- body:has(dialog[open]),
227
- html:has(.dialog.open),
228
- body:has(.dialog.open) {
229
- overflow: hidden;
230
- }
231
235
  </style>
@@ -11,50 +11,54 @@
11
11
  </template>
12
12
 
13
13
  <style>
14
- :root {
15
- --form-item-height: calc(var(--size-4) + var(--ui-padding-block) * 2);
16
- --form-item-height-sm: calc(var(--size-4) + var(--ui-padding-block));
14
+ @layer variables {
15
+ :root {
16
+ --form-item-height: calc(var(--size-4) + var(--ui-padding-block) * 2);
17
+ --form-item-height-sm: calc(var(--size-4) + var(--ui-padding-block));
18
+ }
17
19
  }
18
20
  </style>
19
21
 
20
22
  <style scoped>
21
- .form-item {
22
- border: var(--border);
23
- border-radius: var(--border-radius);
24
- display: flex;
25
- align-items: center;
26
- background: var(--background);
27
- inline-size: 100%;
28
- max-inline-size: -webkit-fill-available;
23
+ @layer components {
24
+ .form-item {
25
+ border: var(--border);
26
+ border-radius: var(--border-radius);
27
+ display: flex;
28
+ align-items: center;
29
+ background: var(--background);
30
+ inline-size: 100%;
31
+ max-inline-size: -webkit-fill-available;
29
32
 
30
- :deep(input),
31
- :deep(textarea),
32
- :deep(select) {
33
- border: none;
34
- }
33
+ :deep(input),
34
+ :deep(textarea),
35
+ :deep(select) {
36
+ border: none;
37
+ }
35
38
 
36
- &:has(input:hover),
37
- &:has(input:focus) {
38
- background: var(--button-background-highlight);
39
- border-color: var(--button-border-color-highlight);
40
- }
39
+ &:has(input:hover),
40
+ &:has(input:focus) {
41
+ background: var(--button-background-highlight);
42
+ border-color: var(--button-border-color-highlight);
43
+ }
41
44
 
42
- .prefix,
43
- .suffix {
44
- padding: 0 var(--ui-padding-inline);
45
- color: var(--muted);
46
- block-size: 100%;
47
- display: flex;
48
- align-items: center;
49
- justify-content: center;
50
- }
45
+ .prefix,
46
+ .suffix {
47
+ padding: 0 var(--ui-padding-inline);
48
+ color: var(--muted);
49
+ block-size: 100%;
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ }
51
54
 
52
- .prefix {
53
- border-inline-end: var(--button-border);
54
- }
55
+ .prefix {
56
+ border-inline-end: var(--button-border);
57
+ }
55
58
 
56
- .suffix {
57
- border-inline-start: var(--button-border);
59
+ .suffix {
60
+ border-inline-start: var(--button-border);
61
+ }
58
62
  }
59
63
  }
60
64
  </style>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@1001-digital/layers.base",
3
3
  "type": "module",
4
- "version": "0.0.6",
4
+ "version": "0.0.8",
5
5
  "main": "./nuxt.config.ts",
6
6
  "devDependencies": {
7
7
  "@iconify-json/lucide": "^1.2.81",
package/app/app.vue DELETED
@@ -1,3 +0,0 @@
1
- <template>
2
- <HelloWorld />
3
- </template>
@@ -1,10 +0,0 @@
1
- <script setup lang="ts">
2
- const { myLayer } = useAppConfig()
3
- </script>
4
-
5
- <template>
6
- <div>
7
- <h1>Hello World!</h1>
8
- <pre>{{ myLayer }}</pre>
9
- </div>
10
- </template>