picocss-gem 0.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.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +216 -0
  3. data/lib/generators/picocss/install_generator.rb +13 -0
  4. data/lib/generators/picocss/install_theme_generator.rb +27 -0
  5. data/lib/generators/picocss/template_login_generator.rb +7 -0
  6. data/lib/generators/picocss/templates/login.html.erb +16 -0
  7. data/lib/generators/picocss/templates/pico.amber.min.css +3507 -0
  8. data/lib/generators/picocss/templates/pico.blue.min.css +3507 -0
  9. data/lib/generators/picocss/templates/pico.cyan.min.css +3507 -0
  10. data/lib/generators/picocss/templates/pico.fuchsia.min.css +3506 -0
  11. data/lib/generators/picocss/templates/pico.green.min.css +3507 -0
  12. data/lib/generators/picocss/templates/pico.grey.min.css +3507 -0
  13. data/lib/generators/picocss/templates/pico.indigo.min.css +3506 -0
  14. data/lib/generators/picocss/templates/pico.jade.min.css +3506 -0
  15. data/lib/generators/picocss/templates/pico.lime.min.css +3118 -0
  16. data/lib/generators/picocss/templates/pico.min.css +3512 -0
  17. data/lib/generators/picocss/templates/pico.orange.min.css +3118 -0
  18. data/lib/generators/picocss/templates/pico.pink.min.css +3118 -0
  19. data/lib/generators/picocss/templates/pico.pumpkin.min.css +3118 -0
  20. data/lib/generators/picocss/templates/pico.purple.min.css +3118 -0
  21. data/lib/generators/picocss/templates/pico.red.min.css +3118 -0
  22. data/lib/generators/picocss/templates/pico.sand.min.css +3118 -0
  23. data/lib/generators/picocss/templates/pico.slate.min.css +3118 -0
  24. data/lib/generators/picocss/templates/pico.violet.min.css +3118 -0
  25. data/lib/generators/picocss/templates/pico.yellow.min.css +3118 -0
  26. data/lib/generators/picocss/templates/pico.zinc.min.css +3118 -0
  27. data/lib/picocss/bridgetown.rb +17 -0
  28. data/lib/picocss/gem.rb +10 -0
  29. data/lib/picocss/railtie.rb +9 -0
  30. data/lib/picocss/sinatra.rb +10 -0
  31. data/lib/picocss/version.rb +5 -0
  32. data/lib/picocss.rb +19 -0
  33. data/vendor/assets/stylesheets/pico.amber.min.css +3118 -0
  34. data/vendor/assets/stylesheets/pico.blue.min.css +3118 -0
  35. data/vendor/assets/stylesheets/pico.cyan.min.css +3118 -0
  36. data/vendor/assets/stylesheets/pico.fuchsia.min.css +3118 -0
  37. data/vendor/assets/stylesheets/pico.green.min.css +3118 -0
  38. data/vendor/assets/stylesheets/pico.grey.min.css +3118 -0
  39. data/vendor/assets/stylesheets/pico.indigo.min.css +3118 -0
  40. data/vendor/assets/stylesheets/pico.jade.min.css +3118 -0
  41. data/vendor/assets/stylesheets/pico.lime.min.css +3118 -0
  42. data/vendor/assets/stylesheets/pico.min.css +3118 -0
  43. data/vendor/assets/stylesheets/pico.orange.min.css +3118 -0
  44. data/vendor/assets/stylesheets/pico.pink.min.css +3118 -0
  45. data/vendor/assets/stylesheets/pico.pumpkin.min.css +3118 -0
  46. data/vendor/assets/stylesheets/pico.purple.min.css +3118 -0
  47. data/vendor/assets/stylesheets/pico.red.min.css +3118 -0
  48. data/vendor/assets/stylesheets/pico.sand.min.css +3118 -0
  49. data/vendor/assets/stylesheets/pico.slate.min.css +3118 -0
  50. data/vendor/assets/stylesheets/pico.violet.min.css +3118 -0
  51. data/vendor/assets/stylesheets/pico.yellow.min.css +3118 -0
  52. data/vendor/assets/stylesheets/pico.zinc.min.css +3118 -0
  53. metadata +151 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: bdc5596e1b796ab6beb8b257769420e87ea36558ca4ef8a71ced9130d5fb6e6c
4
+ data.tar.gz: c350df790bb85be1c22397df827b1a41f607e00656be4f0568918fd6f029137a
5
+ SHA512:
6
+ metadata.gz: 7c0b063bc33c5e641b15e54b7c18c2bab46d6b6ffb85a66ea211e845b148709bfd042b209c0e5aaa694b1899c026cb5e3e118b7987c4bbbf37212d63e9866a4e
7
+ data.tar.gz: fa0efc58145a85392b4c33d53d9fa0dc4259f02d13211d2757806705b9f4c8693999e234570c25905a97e344c685dcc3f08a167312337834d51dc698c0644f79
data/README.md ADDED
@@ -0,0 +1,216 @@
1
+ # Picocss::Gem
2
+
3
+ `picocss-gem` is a **Ruby gem** that integrates [PicoCSS](https://picocss.com) into Ruby applications.
4
+ It works with **Rails**, **Bridgetown**, and **Sinatra**, providing:
5
+
6
+ * Automatic inclusion of PicoCSS assets
7
+ * Rails generators (base + theme + login template)
8
+ * Multi-framework support for Ruby apps
9
+
10
+ > Documentation also available in Portuguese: [PortuguΓͺs](./README.pt-BR.md)
11
+
12
+ ---
13
+
14
+ ## 🌟 Features
15
+
16
+ * βœ… Rails, Sinatra, and Bridgetown support
17
+ * βœ… PicoCSS included and ready for production
18
+ * βœ… Easy setup and integration
19
+ * βœ… Generators for Rails (`bin/rails generate picocss:install`)
20
+ * βœ… Theme generators (`bin/rails generate picocss:install_<theme>`)
21
+ * βœ… Login template generator (`bin/rails generate picocss:template_login`)
22
+
23
+ ---
24
+
25
+ ## πŸ’Ύ Installation
26
+
27
+ Add to your **Gemfile**:
28
+
29
+ ```ruby
30
+ gem "picocss-gem", "~> 0.1.0"
31
+ ```
32
+
33
+ Then run:
34
+
35
+ ```bash
36
+ bundle install
37
+ ```
38
+
39
+ Or install directly:
40
+
41
+ ```bash
42
+ gem install picocss-gem
43
+ ```
44
+
45
+ ---
46
+
47
+ ## πŸ› οΈ Usage
48
+
49
+ ### Rails
50
+
51
+ #### Default PicoCSS
52
+
53
+ 1. Add PicoCSS to your layout:
54
+
55
+ ```erb
56
+ <%= stylesheet_link_tag "pico.min", media: "all" %>
57
+ ```
58
+
59
+ 2. Copy the CSS to your project:
60
+
61
+ ```bash
62
+ bin/rails generate picocss:install
63
+ ```
64
+
65
+ 3. Restart your server:
66
+
67
+ ```bash
68
+ rails server
69
+ ```
70
+
71
+ ---
72
+
73
+ #### 🎨 Install a Theme
74
+
75
+ ```bash
76
+ bin/rails generate picocss:install_<color>
77
+ ```
78
+
79
+ | Theme | Color |
80
+ | ------- | ----------------------------------------------------------------------------------------------------------- |
81
+ | red | <span style="background-color:red; color:white; padding:2px 6px; border-radius:4px;">__</span> |
82
+ | pink | <span style="background-color:pink; color:black; padding:2px 6px; border-radius:4px;">__</span> |
83
+ | fuchsia | <span style="background-color:fuchsia; color:white; padding:2px 6px; border-radius:4px;">__</span> |
84
+ | purple | <span style="background-color:purple; color:white; padding:2px 6px; border-radius:4px;">__</span> |
85
+ | violet | <span style="background-color:violet; color:black; padding:2px 6px; border-radius:4px;">__</span> |
86
+ | indigo | <span style="background-color:indigo; color:white; padding:2px 6px; border-radius:4px;">__</span> |
87
+ | blue | <span style="background-color:blue; color:white; padding:2px 6px; border-radius:4px;">__</span> |
88
+ | cyan | <span style="background-color:cyan; color:black; padding:2px 6px; border-radius:4px;">__</span> |
89
+ | jade | <span style="background-color:mediumseagreen; color:white; padding:2px 6px; border-radius:4px;">__</span> |
90
+ | green | <span style="background-color:green; color:white; padding:2px 6px; border-radius:4px;">__</span> |
91
+ | lime | <span style="background-color:lime; color:black; padding:2px 6px; border-radius:4px;">__</span> |
92
+ | yellow | <span style="background-color:yellow; color:black; padding:2px 6px; border-radius:4px;">__</span> |
93
+ | pumpkin | <span style="background-color:darkorange; color:white; padding:2px 6px; border-radius:4px;">__</span> |
94
+ | orange | <span style="background-color:orange; color:white; padding:2px 6px; border-radius:4px;">__</span> |
95
+ | sand | <span style="background-color:sandybrown; color:black; padding:2px 6px; border-radius:4px;">__</span> |
96
+ | grey | <span style="background-color:grey; color:white; padding:2px 6px; border-radius:4px;">__</span> |
97
+ | zinc | <span style="background-color:darkgray; color:white; padding:2px 6px; border-radius:4px;">__</span> |
98
+ | slate | <span style="background-color:slategray; color:white; padding:2px 6px; border-radius:4px;">__</span> |
99
+
100
+ Example:
101
+
102
+ ```bash
103
+ bin/rails generate picocss:install_blue
104
+ ```
105
+
106
+ ---
107
+
108
+ #### πŸ‘€ Login Template Generator
109
+
110
+ ```bash
111
+ bin/rails generate picocss:template_login
112
+ ```
113
+
114
+ This will copy the login template to:
115
+
116
+ ```
117
+ app/views/sessions/new.html.erb
118
+ ```
119
+
120
+ Template highlights:
121
+
122
+ * Centered form with vertical alignment
123
+ * Fields: Email, Password, "Remember me" checkbox
124
+ * Dark background with contrasting buttons
125
+ * Fully responsive container
126
+
127
+ ```erb
128
+ <main class="container" style="background-color:#111; height:100vh; display:flex; justify-content:center; align-items:center;">
129
+ <form method="post" action="/login" style="width:300px;">
130
+ <h1 style="color:white;">Login</h1>
131
+ <label>Email</label>
132
+ <input type="email" required>
133
+ <label>Password</label>
134
+ <input type="password" required>
135
+ <div>
136
+ <input type="checkbox">
137
+ <label>Remember me</label>
138
+ </div>
139
+ <button type="submit">Login</button>
140
+ </form>
141
+ </main>
142
+ ```
143
+
144
+ ---
145
+
146
+ ### Sinatra
147
+
148
+ ```ruby
149
+ require "sinatra"
150
+ require "picocss"
151
+
152
+ register Picocss::Sinatra
153
+ ```
154
+
155
+ ```html
156
+ <link rel="stylesheet" href="/assets/stylesheets/pico.min.css" />
157
+ ```
158
+
159
+ ```bash
160
+ ruby app.rb
161
+ ```
162
+
163
+ ---
164
+
165
+ ### Bridgetown
166
+
167
+ ```ruby
168
+ gem "picocss-gem", "~> 0.1.0"
169
+ ```
170
+
171
+ CSS Copy automatically to:
172
+
173
+ ```
174
+ output/assets/css/pico.min.css
175
+ ```
176
+
177
+ Include in layout:
178
+
179
+ ```html
180
+ <link rel="stylesheet" href="/assets/css/pico.min.css" />
181
+ ```
182
+
183
+ Build and serve:
184
+
185
+ ```bash
186
+ bridgetown build
187
+ bridgetown serve
188
+ ```
189
+
190
+ ---
191
+
192
+ ## ⚑ Generators Summary
193
+
194
+ | Command | Description |
195
+ | -------------------------------------------- | ---------------------------------------------- |
196
+ | `bin/rails generate picocss:install` | Copy `pico.min.css` |
197
+ | `bin/rails generate picocss:install_<theme>` | Copy a themed CSS (e.g. `pico.blue.min.css`) |
198
+ | `bin/rails generate picocss:template_login` | Copy login template |
199
+
200
+ ---
201
+
202
+ ## πŸ§ͺ Development
203
+
204
+ ```bash
205
+ bin/setup
206
+ rake spec
207
+ bin/console
208
+ bundle exec rake install
209
+ bundle exec rake release
210
+ ```
211
+
212
+ ---
213
+
214
+ ## πŸ“ License
215
+
216
+ MIT License. See [LICENSE](./LICENSE.txt)
@@ -0,0 +1,13 @@
1
+ require "rails/generators"
2
+
3
+ module Picocss
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ source_root File.expand_path("templates", __dir__)
7
+
8
+ def copy_stylesheet
9
+ copy_file "pico.min.css", "app/assets/stylesheets/pico.min.css"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,27 @@
1
+ # lib/picocss/install_theme_generator.rb
2
+
3
+ module Picocss
4
+ module Generators
5
+ themes = %w[
6
+ red pink fuchsia purple violet indigo blue
7
+ cyan jade green lime yellow amber pumpkin
8
+ orange sand grey zinc slate
9
+ ]
10
+
11
+ themes.each do |color|
12
+ klass_name = "Install#{color.capitalize}Generator"
13
+
14
+ const_set(klass_name, Class.new(Rails::Generators::Base) do
15
+ source_root File.expand_path("templates", __dir__)
16
+
17
+ define_method(:copy_theme_file) do
18
+ theme_file = "pico.#{color}.min.css"
19
+ target_path = "app/assets/stylesheets/#{theme_file}"
20
+ copy_file theme_file, target_path
21
+ say "βœ… Tema '#{color}' instalado com sucesso!", :green
22
+ say "Adicione no layout: <%= stylesheet_link_tag '#{theme_file}' %>", :yellow
23
+ end
24
+ end)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,7 @@
1
+ class Picocss::TemplateLoginGenerator < Rails::Generators::Base
2
+ source_root File.expand_path("templates", __dir__)
3
+
4
+ def copy_login_template
5
+ copy_file "login.html.erb", "app/views/sessions/new.html.erb"
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ <main class="container" style="background-color: #111; height: 100vh; display:flex; justify-content:center; align-items:center;">
2
+ <form method="post" action="/login" style="width:300px;">
3
+ <hgroup>
4
+ <h1 style="color:white;">Login</h1>
5
+ </hgroup>
6
+ <label for="email" style="color:white;">Email</label>
7
+ <input type="email" id="email" name="email" required>
8
+ <label for="password" style="color:white;">Senha</label>
9
+ <input type="password" id="password" name="password" required>
10
+ <div>
11
+ <input type="checkbox" id="remember" name="remember">
12
+ <label for="remember" style="color:white;">Lembrar-me</label>
13
+ </div>
14
+ <button type="submit" style="background:black; color:white; width:100%;">Entrar</button>
15
+ </form>
16
+ </main>