css-zero 0.0.12 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 945da122c69f2e0e60107ec644977720638f884d8df7090b4c1d32a4f4c960d9
4
- data.tar.gz: 28777cbfd808aaafe8a3401c34d987fc989b4ae13580361682414341f87b1e32
3
+ metadata.gz: 534451ca0aee9a1bf1b81e3831c6716e7ac071dbf0ec5f0c2e4805ef86cf9638
4
+ data.tar.gz: a9a70ae47d1253368e596483adab0134242292465b8b2e4dc20df18b246c7852
5
5
  SHA512:
6
- metadata.gz: e426c0ab8a1dd0223bc6a789720bb82c1ae41f3041371618dd647433e0b052dcd7f00ef28a0881837c7dc2c20d0e590fef18df35281dc6b0bd8c7431388b7ddd
7
- data.tar.gz: 42efd1be6dea0b6493e501c637b2b8c3a07ad68af08a95cc5086ca2a3580b34d6d81354a1be861503d70eac1f62c19a6608b20e9dc4002443a6c6860ee72cb7f
6
+ metadata.gz: ffd516034332e7b6092dfa659536321295a5047d7e4ab745725c6ea3e9b03611caf8913a89417f680bf0a660c924eaf93264b29d0b4e57681556b3b87568e380
7
+ data.tar.gz: 8104a1a8a350126a5d5dbe74276ffaafd76aa4f85d8156e45aaf4630edf7fc9c0add9972e21c68392deb88666697117d52a01b02f077129910e729578b65b483
data/README.md CHANGED
@@ -4,12 +4,6 @@ An opinionated CSS starter kit for your application. You can think of it like a
4
4
 
5
5
  ## Installation
6
6
 
7
- Is recommended to use [Propshaft](https://github.com/rails/propshaft), make sure to load all the CSS files in your `layout.html.erb`.
8
-
9
- ```html+erb
10
- <%= stylesheet_link_tag :all, "data-turbo-track": "reload" %>
11
- ```
12
-
13
7
  Add this gem to your project.
14
8
 
15
9
  ```
@@ -25,9 +19,48 @@ bin/rails generate css_zero:install
25
19
  Add only the components you need. (Optional)
26
20
 
27
21
  ```
28
- bin/rails generate css_zero:add accordion alert alert_dialog badge button card dialog input progress switch table
22
+ bin/rails generate css_zero:add accordion alert badge button card dialog input progress switch table
29
23
  ```
30
24
 
25
+ ### Requirements
26
+
27
+ If you are using [Propshaft](https://github.com/rails/propshaft) (recommended) make sure to load all the CSS files in your layout.html.erb.
28
+
29
+ <details>
30
+ <summary>Click here to see how</summary>
31
+
32
+ ```html+erb
33
+ <%= stylesheet_link_tag :all, "data-turbo-track": "reload" %>
34
+ ```
35
+ </details>
36
+
37
+ If you are using [Sprockets](https://github.com/rails/sprockets) make sure to load all the CSS files in your application.css.
38
+
39
+ <details>
40
+ <summary>Click here to see how</summary>
41
+
42
+ ```
43
+ /*
44
+ *= require _reset
45
+ *= require animations
46
+ *= require borders
47
+ *= require colors
48
+ *= require effects
49
+ *= require filters
50
+ *= require grid
51
+ *= require sizes
52
+ *= require transform
53
+ *= require transition
54
+ *= require typography
55
+ *= require_tree .
56
+ *= require_self
57
+ *= require zutilities
58
+ */
59
+ ```
60
+ </details>
61
+
62
+ Some icons in the examples are not copied to the project. If you are looking for good ones, I recommend [Lucide](https://lucide.dev).
63
+
31
64
  ## Usage
32
65
 
33
66
  ```html
@@ -63,7 +96,7 @@ Check the [CSS files](app/assets/stylesheets) in the repository to see the avail
63
96
  <details>
64
97
  <summary>Show me the code</summary>
65
98
 
66
- ```html
99
+ ```html+erb
67
100
  <div class="accordion">
68
101
  <details name="my_accordion">
69
102
  <summary>Is it accessible?</summary>
@@ -99,32 +132,6 @@ Check the [CSS files](app/assets/stylesheets) in the repository to see the avail
99
132
  ```
100
133
  </details>
101
134
 
102
- ### Alert Dialog
103
-
104
- <img width="500" alt="alert_dialog" src="https://github.com/lazaronixon/css-zero/assets/2651240/483b00fc-0330-45b3-82c5-dc4118987564">
105
-
106
- <details>
107
- <summary>Show me the code</summary>
108
-
109
- ```html
110
- <div>
111
- <dialog id="my_alert_dialog" class="alert-dialog">
112
- <h1 class="text-lg font-semibold">Are you absolutely sure?</h1>
113
- <p class="text-sm text-subtle mbs-2">This action cannot be undone. This will permanently delete your account and remove your data from our servers.</p>
114
-
115
- <div class="flex justify-end gap-sm mbs-4">
116
- <form method="dialog"><button class="btn btn--outline">Cancel</button></form>
117
- <button class="btn btn--primary">Continue</button>
118
- </div>
119
- </dialog>
120
-
121
- <button class="btn" data-controller="dialog-control" data-dialog-control-target-value="my_alert_dialog" data-action="dialog-control#showModal">
122
- Show alert dialog
123
- </button>
124
- </div>
125
- ```
126
- </details>
127
-
128
135
  ### Badge
129
136
 
130
137
  <img width="400" alt="image" src="https://github.com/lazaronixon/css-zero/assets/2651240/6a700dc4-0fd5-46f6-9902-a9bde5f7febb">
@@ -132,7 +139,7 @@ Check the [CSS files](app/assets/stylesheets) in the repository to see the avail
132
139
  <details>
133
140
  <summary>Show me the code</summary>
134
141
 
135
- ```html
142
+ ```html+erb
136
143
  <div class="flex justify-start gap">
137
144
  <div class="badge">Badge</div>
138
145
  <div class="badge badge--secondary">Secondary</div>
@@ -145,21 +152,22 @@ Check the [CSS files](app/assets/stylesheets) in the repository to see the avail
145
152
 
146
153
  ### Button
147
154
 
148
- <img width="500" alt="button" src="https://github.com/lazaronixon/css-zero/assets/2651240/0c2ee625-9e6b-4f9c-8437-8d6751e4e508">
155
+ <img width="500" alt="button" src="https://github.com/lazaronixon/css-zero/assets/2651240/df78c11e-9167-4fd3-a779-24729cb24715">
149
156
 
150
157
  <details>
151
158
  <summary>Show me the code</summary>
152
159
 
153
- ```html
160
+ ```html+erb
154
161
  <div class="flex flex-wrap items-center gap" aria-busy>
155
162
  <button class="btn">Primary</button>
156
163
  <button class="btn btn--secondary">Secondary</button>
157
164
  <button class="btn btn--outline">Outline</button>
158
165
  <button class="btn btn--plain">Plain</button>
166
+ <button class="btn btn--positive">Positive</button>
159
167
  <button class="btn btn--negative">Negative</button>
160
168
 
161
169
  <button class="btn">
162
- <%= image_tag "circle-alert.svg", role: "presentation", size: 16 %>
170
+ <%= image_tag "circle-plus.svg", role: "presentation", size: 16 %>
163
171
  <span>With icon</span>
164
172
  </button>
165
173
 
@@ -177,7 +185,7 @@ Check the [CSS files](app/assets/stylesheets) in the repository to see the avail
177
185
  <details>
178
186
  <summary>Show me the code</summary>
179
187
 
180
- ```html
188
+ ```html+erb
181
189
  <div class="card flex flex-col gap" style="width: 350px; gap: 1.5rem;">
182
190
  <div class="flex flex-col gap-sm">
183
191
  <h1 class="text-2xl font-semibold leading-none">Create project</h1>
@@ -211,16 +219,43 @@ Check the [CSS files](app/assets/stylesheets) in the repository to see the avail
211
219
 
212
220
  ### Dialog
213
221
 
214
- <img width="400" alt="dialog" src="https://github.com/lazaronixon/css-zero/assets/2651240/50c8af20-46bb-4bf9-a233-78877f49e086">
222
+ #### Alert Dialog
223
+
224
+ <img width="500" alt="alert_dialog" src="https://github.com/lazaronixon/css-zero/assets/2651240/483b00fc-0330-45b3-82c5-dc4118987564">
215
225
 
216
226
  <details>
217
227
  <summary>Show me the code</summary>
218
228
 
219
- ```html
220
- <artice class="flex flex-col pb-10 pi-2 mi-auto w-full" style="gap: 4rem; max-width: 32rem">
229
+ ```html+erb
230
+ <div>
231
+ <dialog id="alert_dialog" class="dialog">
232
+ <h1 class="text-lg font-semibold">Are you absolutely sure?</h1>
233
+ <p class="text-sm text-subtle mbs-2">This action cannot be undone. This will permanently delete your account and remove your data from our servers.</p>
234
+
235
+ <div class="flex justify-end gap-sm mbs-4">
236
+ <form method="dialog"><button class="btn btn--outline">Cancel</button></form>
237
+ <button class="btn btn--primary">Continue</button>
238
+ </div>
239
+ </dialog>
240
+
241
+ <button class="btn" data-controller="dialog-control" data-dialog-control-target-value="alert_dialog" data-action="dialog-control#showModal">
242
+ Show alert dialog
243
+ </button>
244
+ </div>
245
+ ```
246
+ </details>
247
+
248
+ #### Dismissible Dialog
249
+
250
+ <img width="400" alt="dismissible dialog" src="https://github.com/lazaronixon/css-zero/assets/2651240/50c8af20-46bb-4bf9-a233-78877f49e086">
251
+
252
+ <details>
253
+ <summary>Show me the code</summary>
254
+
255
+ ```html+erb
221
256
  <div>
222
- <dialog id="my_dialog" class="dialog" style="max-inline-size: 430px;" popover>
223
- <button class="btn btn--plain p-0 dialog__close" popovertarget="my_dialog" popovertargetaction="hide">
257
+ <dialog id="dismissible_dialog" class="dialog" style="max-inline-size: 430px;" popover>
258
+ <button class="btn btn--plain p-0 dialog__close" popovertarget="dismissible_dialog" popovertargetaction="hide">
224
259
  <%= image_tag "x.svg", aria: { hidden: "true" }, size: 16 %>
225
260
  <span class="sr-only">Close</span>
226
261
  </button>
@@ -249,8 +284,8 @@ Check the [CSS files](app/assets/stylesheets) in the repository to see the avail
249
284
  </div>
250
285
  </dialog>
251
286
 
252
- <button class="btn" popovertarget="my_dialog">
253
- Show dialog
287
+ <button class="btn" popovertarget="dismissible_dialog">
288
+ Show dismissible dialog
254
289
  </button>
255
290
  </div>
256
291
  ```
@@ -330,7 +365,7 @@ Check the [CSS files](app/assets/stylesheets) in the repository to see the avail
330
365
  <details>
331
366
  <summary>Show me the code</summary>
332
367
 
333
- ```html
368
+ ```html+erb
334
369
  <table class="table">
335
370
  <thead>
336
371
  <tr>
@@ -1,3 +1,3 @@
1
1
  module CssZero
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.14"
3
3
  end
@@ -2,7 +2,7 @@ Description:
2
2
  This will add components into your project.
3
3
 
4
4
  Components:
5
- accordion alert alert_dialog badge button card dialog input progress switch table
5
+ accordion alert badge button card dialog input progress switch table
6
6
 
7
7
  Example:
8
8
  bin/rails generate css_zero:add [components...]
@@ -3,10 +3,6 @@ accordion:
3
3
  - app/assets/images/chevron-down.svg
4
4
  alert:
5
5
  - app/assets/stylesheets/alert.css
6
- - app/assets/images/circle-alert.svg
7
- alert_dialog:
8
- - app/assets/stylesheets/alert_dialog.css
9
- - app/javascript/controllers/dialog_control_controller.js
10
6
  badge:
11
7
  - app/assets/stylesheets/badge.css
12
8
  button:
@@ -17,6 +13,7 @@ card:
17
13
  dialog:
18
14
  - app/assets/stylesheets/dialog.css
19
15
  - app/assets/images/x.svg
16
+ - app/javascript/controllers/dialog_control_controller.js
20
17
  input:
21
18
  - app/assets/stylesheets/input.css
22
19
  - app/assets/images/select-arrow.svg
@@ -11,6 +11,12 @@
11
11
  }
12
12
  }
13
13
 
14
+ .alert--positive {
15
+ --alert-border-color: var(--color-positive);
16
+ --alert-color: var(--color-positive);
17
+ --alert-icon-color: var(--color-filter-positive);
18
+ }
19
+
14
20
  .alert--negative {
15
21
  --alert-border-color: var(--color-negative);
16
22
  --alert-color: var(--color-negative);
@@ -49,9 +49,16 @@
49
49
  --btn-icon-color: var(--color-filter-text);
50
50
  }
51
51
 
52
+ .btn--positive {
53
+ --btn-background: var(--color-positive);
54
+ --btn-color: white;
55
+ --btn-icon-color: var(--color-filter-positive);
56
+ }
57
+
52
58
  .btn--negative {
53
59
  --btn-background: var(--color-negative);
54
60
  --btn-color: white;
61
+ --btn-icon-color: var(--color-filter-negative);
55
62
  }
56
63
 
57
64
  .btn--loading {
@@ -28,21 +28,21 @@
28
28
  }
29
29
 
30
30
  /* In animation */
31
- &:popover-open {
31
+ &:is([open], :popover-open) {
32
32
  opacity: 1; transform: var(--scale-100);
33
33
  }
34
34
 
35
- &:popover-open::backdrop {
35
+ &:is([open], :popover-open)::backdrop {
36
36
  opacity: 1;
37
37
  }
38
38
 
39
39
  /* Out animation */
40
40
  @starting-style {
41
- &:popover-open {
41
+ &:is([open], :popover-open) {
42
42
  opacity: 0; transform: var(--scale-95);
43
43
  }
44
44
 
45
- &:popover-open::backdrop {
45
+ &:is([open], :popover-open)::backdrop {
46
46
  opacity: 0;
47
47
  }
48
48
  }
@@ -59,6 +59,6 @@
59
59
  }
60
60
 
61
61
  /* Prevent page scroll when dialog is open */
62
- html:has(.dialog:popover-open) {
62
+ html:has(.dialog:is([open], :popover-open)) {
63
63
  overflow: hidden;
64
64
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: css-zero
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lázaro Nixon
@@ -43,7 +43,6 @@ files:
43
43
  - lib/generators/css_zero/add/templates/app/assets/images/x.svg
44
44
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/accordion.css
45
45
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/alert.css
46
- - lib/generators/css_zero/add/templates/app/assets/stylesheets/alert_dialog.css
47
46
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/badge.css
48
47
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/button.css
49
48
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/card.css
@@ -1,59 +0,0 @@
1
- .alert-dialog {
2
- background-color: var(--color-bg);
3
- border-width: var(--border);
4
- border-radius: var(--rounded-lg);
5
- box-shadow: var(--shadow-lg);
6
- color: var(--color-text);
7
- inline-size: var(--size-full);
8
- margin: auto;
9
- max-inline-size: var(--width-lg);
10
- padding: var(--size-6);
11
-
12
- &::backdrop {
13
- background-color: rgba(0, 0, 0, .8);
14
- }
15
-
16
- /* Setup animation */
17
- opacity: 0;
18
- transform: var(--scale-95);
19
- transition-behavior: allow-discrete;
20
- transition-duration: var(--time-150);
21
- transition-property: display overlay opacity transform;
22
-
23
- &::backdrop {
24
- opacity: 0;
25
- transition-behavior: allow-discrete;
26
- transition-duration: var(--time-150);
27
- transition-property: display overlay opacity;
28
- }
29
-
30
- /* In animation */
31
- &[open] {
32
- opacity: 1; transform: var(--scale-100);
33
- }
34
-
35
- &[open]::backdrop {
36
- opacity: 1;
37
- }
38
-
39
- /* Out animation */
40
- @starting-style {
41
- &[open] {
42
- opacity: 0; transform: var(--scale-95);
43
- }
44
-
45
- &[open]::backdrop {
46
- opacity: 0;
47
- }
48
- }
49
-
50
- /* Small screens */
51
- @media (width < 40rem) {
52
- border-radius: 0;
53
- }
54
- }
55
-
56
- /* Prevent page scroll when alert dialog is open */
57
- html:has(.alert-dialog[open]) {
58
- overflow: hidden;
59
- }