bullet_train-themes-light 1.0.51 → 1.0.52

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: 14ac085c828df5d4739cddfdae12ab3b462a2996d413a34290ef06445206336e
4
- data.tar.gz: 81196ed67604317f370ac0b1744dd53f6910f4d322b44744f2c323190308c9fb
3
+ metadata.gz: 8a754384fab44617e990f5ecd27c2a14670dd18f61917475b69e36782c0dabc8
4
+ data.tar.gz: c02c850a01424959309209577b15c6bb9055596b958891c5c9621220f6d6e2b3
5
5
  SHA512:
6
- metadata.gz: ef8ec3d24b6042559b94a5e9b9aba430d5b4fcb7646923cb4e968de0e2d2ae28cd63bf263ab907d4cf8fe2299bc036da3df62b6c3f255b81f685383be3609ac3
7
- data.tar.gz: b5d54ab69ae7effc020575bc3492f90c806fd929d0c23d80becb102817343c92cbf422e95e7c4908dda89416bab744f1babc48fae9b54991eb2744dbc80645ae
6
+ metadata.gz: 2d2c1eb900276c49b438430ca76d1ac058b8b3ecbbd26206a7b58efc0e1811a0a7337767bd17e02e868ca671292865cc9ba598a5740aaf07f6d7a8606b951338
7
+ data.tar.gz: 5d6bea969de01203f6968e8de03cc6a36ff0aeeca5c0748dd901631f244fe627791cdf4c9a0eaa4998ce7c7c0a064d7ab6cb9e5c74de4b5f309f3b35ace9ff0e
@@ -1,7 +1,7 @@
1
1
  @layer components {
2
2
  .date-input {
3
3
  .single-daterange {
4
- @apply rounded-md shadow-sm focus:ring-primary-500 focus:border-primary-500 font-light text-sm;
4
+ @apply rounded-md shadow-sm focus:ring-primary-500 focus:border-primary-500 font-light text-base md:text-sm;
5
5
  }
6
6
  }
7
7
 
@@ -20,6 +20,7 @@
20
20
  .select2-container .select2-search--inline .select2-search__field {
21
21
  font-weight: 300;
22
22
  margin-top: 6px;
23
+ @apply text-base md:text-sm;
23
24
  }
24
25
 
25
26
  .select2 {
@@ -88,3 +88,7 @@ trix-editor {
88
88
  display: none !important;
89
89
  }
90
90
  }
91
+
92
+ .trix-content {
93
+ @apply text-base md:text-sm;
94
+ }
@@ -1,19 +1,87 @@
1
+ :root {
2
+ --theme-blue-300: #95acff;
3
+ --theme-blue-400: #448eef;
4
+ --theme-blue-500: #047bf8;
5
+ --theme-blue-600: #0362c6;
6
+ --theme-blue-700: #1c4cc3;
7
+ --theme-blue-800: #0e369a;
8
+ --theme-blue-900: #00369D;
9
+
10
+ --theme-purple-300: #ac95ff;
11
+ --theme-purple-400: #8e44ef;
12
+ --theme-purple-500: #7b04f8;
13
+ --theme-purple-600: #6203c6;
14
+ --theme-purple-700: #4c1cc3;
15
+ --theme-purple-800: #360e9a;
16
+ --theme-purple-900: #36009D;
17
+
18
+ --theme-orange-300: #ffac95;
19
+ --theme-orange-400: #ef8e44;
20
+ --theme-orange-500: #f87b04;
21
+ --theme-orange-600: #c66203;
22
+ --theme-orange-700: #c34c1c;
23
+ --theme-orange-800: #9a360e;
24
+ --theme-orange-900: #9D3600;
25
+
26
+ --theme-pink-300: #ff95ac;
27
+ --theme-pink-400: #ef448e;
28
+ --theme-pink-500: #f8047b;
29
+ --theme-pink-600: #c60362;
30
+ --theme-pink-700: #c31c4c;
31
+ --theme-pink-800: #9a0e36;
32
+ --theme-pink-900: #9D0036;
33
+
34
+ --theme-gray-300: #ccd9e8;
35
+ --theme-gray-400: #9facc7;
36
+ --theme-gray-500: #777E94;
37
+ --theme-gray-600: #4D566F;
38
+ --theme-gray-700: #323c58;
39
+ --theme-gray-800: #2b344e;
40
+ --theme-gray-900: #232942;
41
+
42
+ /* TOOD Kind of yuck? */
43
+ --theme-sand-300: #e8d9cc;
44
+ --theme-sand-400: #c7ac9f;
45
+ --theme-sand-500: #947E77;
46
+ --theme-sand-600: #6F564D;
47
+ --theme-sand-700: #583c32;
48
+ --theme-sand-800: #4e342b;
49
+ --theme-sand-900: #422923;
50
+
51
+ }
52
+
1
53
  :root, .theme-blue {
2
- --primary-300: #95acff;
3
- --primary-400: #448eef;
4
- --primary-500: #047bf8;
5
- --primary-600: #0362c6;
6
- --primary-700: #1c4cc3;
7
- --primary-800: #0e369a;
8
- --primary-900: #00369D;
9
-
10
- --dark-primary-300: #ccd9e8;
11
- --dark-primary-400: #9facc7;
12
- --dark-primary-500: #777E94;
13
- --dark-primary-600: #4D566F;
14
- --dark-primary-700: #323c58;
15
- --dark-primary-800: #2b344e;
16
- --dark-primary-900: #232942;
54
+ --primary-300: var(--theme-blue-300);
55
+ --primary-400: var(--theme-blue-400);
56
+ --primary-500: var(--theme-blue-500);
57
+ --primary-600: var(--theme-blue-600);
58
+ --primary-700: var(--theme-blue-700);
59
+ --primary-800: var(--theme-blue-800);
60
+ --primary-900: var(--theme-blue-900);
61
+
62
+ --secondary-300: var(--theme-blue-300);
63
+ --secondary-400: var(--theme-blue-400);
64
+ --secondary-500: var(--theme-blue-500);
65
+ --secondary-600: var(--theme-blue-600);
66
+ --secondary-700: var(--theme-blue-700);
67
+ --secondary-800: var(--theme-blue-800);
68
+ --secondary-900: var(--theme-blue-900);
69
+
70
+ --dark-primary-300: var(--theme-gray-300);
71
+ --dark-primary-400: var(--theme-gray-400);
72
+ --dark-primary-500: var(--theme-gray-500);
73
+ --dark-primary-600: var(--theme-gray-600);
74
+ --dark-primary-700: var(--theme-gray-700);
75
+ --dark-primary-800: var(--theme-gray-800);
76
+ --dark-primary-900: var(--theme-gray-900);
77
+
78
+ --dark-secondary-300: var(--theme-gray-300);
79
+ --dark-secondary-400: var(--theme-gray-400);
80
+ --dark-secondary-500: var(--theme-gray-500);
81
+ --dark-secondary-600: var(--theme-gray-600);
82
+ --dark-secondary-700: var(--theme-gray-700);
83
+ --dark-secondary-800: var(--theme-gray-800);
84
+ --dark-secondary-900: var(--theme-gray-900);
17
85
 
18
86
  --dark-accent-200: #b3bcde;
19
87
 
@@ -24,21 +92,29 @@
24
92
  }
25
93
 
26
94
  .theme-purple {
27
- --primary-300: #ac95ff;
28
- --primary-400: #8e44ef;
29
- --primary-500: #7b04f8;
30
- --primary-600: #6203c6;
31
- --primary-700: #4c1cc3;
32
- --primary-800: #360e9a;
33
- --primary-900: #36009D;
34
-
35
- --dark-primary-300: #d9cce8;
36
- --dark-primary-400: #ac9fc7;
37
- --dark-primary-500: #7E7794;
38
- --dark-primary-600: #564D6F;
39
- --dark-primary-700: #3c3258;
40
- --dark-primary-800: #342b4e;
41
- --dark-primary-900: #292342;
95
+ --primary-300: var(--theme-purple-300);
96
+ --primary-400: var(--theme-purple-400);
97
+ --primary-500: var(--theme-purple-500);
98
+ --primary-600: var(--theme-purple-600);
99
+ --primary-700: var(--theme-purple-700);
100
+ --primary-800: var(--theme-purple-800);
101
+ --primary-900: var(--theme-purple-900);
102
+
103
+ --secondary-300: var(--theme-purple-300);
104
+ --secondary-400: var(--theme-purple-400);
105
+ --secondary-500: var(--theme-purple-500);
106
+ --secondary-600: var(--theme-purple-600);
107
+ --secondary-700: var(--theme-purple-700);
108
+ --secondary-800: var(--theme-purple-800);
109
+ --secondary-900: var(--theme-purple-900);
110
+
111
+ --dark-primary-300: var(--theme-gray-300);
112
+ --dark-primary-400: var(--theme-gray-400);
113
+ --dark-primary-500: var(--theme-gray-500);
114
+ --dark-primary-600: var(--theme-gray-600);
115
+ --dark-primary-700: var(--theme-gray-700);
116
+ --dark-primary-800: var(--theme-gray-800);
117
+ --dark-primary-900: var(--theme-gray-900);
42
118
 
43
119
  --dark-accent-200: #bcb3de;
44
120
 
@@ -49,22 +125,29 @@
49
125
  }
50
126
 
51
127
  .theme-orange {
52
- --primary-300: #ffac95;
53
- --primary-400: #ef8e44;
54
- --primary-500: #f87b04;
55
- --primary-600: #c66203;
56
- --primary-700: #c34c1c;
57
- --primary-800: #9a360e;
58
- --primary-900: #9D3600;
128
+ --primary-300: var(--theme-orange-300);
129
+ --primary-400: var(--theme-orange-400);
130
+ --primary-500: var(--theme-orange-500);
131
+ --primary-600: var(--theme-orange-600);
132
+ --primary-700: var(--theme-orange-700);
133
+ --primary-800: var(--theme-orange-800);
134
+ --primary-900: var(--theme-orange-900);
59
135
 
60
- /* TOOD Kind of yuck? */
61
- --dark-primary-300: #e8d9cc;
62
- --dark-primary-400: #c7ac9f;
63
- --dark-primary-500: #947E77;
64
- --dark-primary-600: #6F564D;
65
- --dark-primary-700: #583c32;
66
- --dark-primary-800: #4e342b;
67
- --dark-primary-900: #422923;
136
+ --secondary-300: var(--theme-orange-300);
137
+ --secondary-400: var(--theme-orange-400);
138
+ --secondary-500: var(--theme-orange-500);
139
+ --secondary-600: var(--theme-orange-600);
140
+ --secondary-700: var(--theme-orange-700);
141
+ --secondary-800: var(--theme-orange-800);
142
+ --secondary-900: var(--theme-orange-900);
143
+
144
+ --dark-primary-300: var(--theme-sand-300);
145
+ --dark-primary-400: var(--theme-sand-400);
146
+ --dark-primary-500: var(--theme-sand-500);
147
+ --dark-primary-600: var(--theme-sand-600);
148
+ --dark-primary-700: var(--theme-sand-700);
149
+ --dark-primary-800: var(--theme-sand-800);
150
+ --dark-primary-900: var(--theme-sand-900);
68
151
 
69
152
  --dark-accent-200: #debcb3;
70
153
 
@@ -75,21 +158,29 @@
75
158
  }
76
159
 
77
160
  .theme-pink {
78
- --primary-300: #ff95ac;
79
- --primary-400: #ef448e;
80
- --primary-500: #f8047b;
81
- --primary-600: #c60362;
82
- --primary-700: #c31c4c;
83
- --primary-800: #9a0e36;
84
- --primary-900: #9D0036;
85
-
86
- --dark-primary-300: #d9cce8;
87
- --dark-primary-400: #ac9fc7;
88
- --dark-primary-500: #7E7794;
89
- --dark-primary-600: #564D6F;
90
- --dark-primary-700: #3c3258;
91
- --dark-primary-800: #342b4e;
92
- --dark-primary-900: #292342;
161
+ --primary-300: var(--theme-pink-300);
162
+ --primary-400: var(--theme-pink-400);
163
+ --primary-500: var(--theme-pink-500);
164
+ --primary-600: var(--theme-pink-600);
165
+ --primary-700: var(--theme-pink-700);
166
+ --primary-800: var(--theme-pink-800);
167
+ --primary-900: var(--theme-pink-900);
168
+
169
+ --secondary-300: var(--theme-pink-300);
170
+ --secondary-400: var(--theme-pink-400);
171
+ --secondary-500: var(--theme-pink-500);
172
+ --secondary-600: var(--theme-pink-600);
173
+ --secondary-700: var(--theme-pink-700);
174
+ --secondary-800: var(--theme-pink-800);
175
+ --secondary-900: var(--theme-pink-900);
176
+
177
+ --dark-primary-300: var(--theme-gray-300);
178
+ --dark-primary-400: var(--theme-gray-400);
179
+ --dark-primary-500: var(--theme-gray-500);
180
+ --dark-primary-600: var(--theme-gray-600);
181
+ --dark-primary-700: var(--theme-gray-700);
182
+ --dark-primary-800: var(--theme-gray-800);
183
+ --dark-primary-900: var(--theme-gray-900);
93
184
 
94
185
  --dark-accent-200: #bcb3de;
95
186
 
@@ -98,3 +189,67 @@
98
189
  --dark-gradient-from: #6728ab;
99
190
  --dark-gradient-to: #633d7d;
100
191
  }
192
+
193
+ .theme-secondary-blue {
194
+ --secondary-300: var(--theme-blue-300);
195
+ --secondary-400: var(--theme-blue-400);
196
+ --secondary-500: var(--theme-blue-500);
197
+ --secondary-600: var(--theme-blue-600);
198
+ --secondary-700: var(--theme-blue-700);
199
+ --secondary-800: var(--theme-blue-800);
200
+ --secondary-900: var(--theme-blue-900);
201
+ }
202
+
203
+ .theme-secondary-purple {
204
+ --secondary-300: var(--theme-purple-300);
205
+ --secondary-400: var(--theme-purple-400);
206
+ --secondary-500: var(--theme-purple-500);
207
+ --secondary-600: var(--theme-purple-600);
208
+ --secondary-700: var(--theme-purple-700);
209
+ --secondary-800: var(--theme-purple-800);
210
+ --secondary-900: var(--theme-purple-900);
211
+ }
212
+
213
+
214
+ .theme-secondary-orange {
215
+ --secondary-300: var(--theme-orange-300);
216
+ --secondary-400: var(--theme-orange-400);
217
+ --secondary-500: var(--theme-orange-500);
218
+ --secondary-600: var(--theme-orange-600);
219
+ --secondary-700: var(--theme-orange-700);
220
+ --secondary-800: var(--theme-orange-800);
221
+ --secondary-900: var(--theme-orange-900);
222
+ }
223
+
224
+ .theme-secondary-pink {
225
+ --secondary-300: var(--theme-pink-300);
226
+ --secondary-400: var(--theme-pink-400);
227
+ --secondary-500: var(--theme-pink-500);
228
+ --secondary-600: var(--theme-pink-600);
229
+ --secondary-700: var(--theme-pink-700);
230
+ --secondary-800: var(--theme-pink-800);
231
+ --secondary-900: var(--theme-pink-900);
232
+ }
233
+
234
+ /* This isn't intended for use by any userland applications. */
235
+ /* We do this strictly to avoid shipping different color versions of our logo. */
236
+ /* This is disabled by default in new applications. */
237
+ .theme-logo-color-shift {
238
+ &.theme-pink {
239
+ img.theme-logo {
240
+ filter: hue-rotate(105deg) brightness(0.9);
241
+ }
242
+ }
243
+
244
+ &.theme-purple {
245
+ img.theme-logo {
246
+ filter: hue-rotate(33deg) brightness(0.9);
247
+ }
248
+ }
249
+
250
+ &.theme-orange {
251
+ img.theme-logo {
252
+ filter: hue-rotate(160deg) brightness(1.10);
253
+ }
254
+ }
255
+ }
@@ -1,6 +1,6 @@
1
1
  @layer components {
2
2
  a {
3
- @apply text-primary-500 hover:text-primary-600 hover:underline;
3
+ @apply text-secondary-500 hover:text-secondary-600 hover:underline;
4
4
  }
5
5
 
6
6
  b, strong {
@@ -20,9 +20,9 @@
20
20
  }
21
21
 
22
22
  .button-secondary {
23
- @apply text-primary-500 hover:text-primary-600 hover:underline;
23
+ @apply text-secondary-500 hover:text-secondary-600 hover:underline;
24
24
  &.button-increase-contrast {
25
- @apply text-primary-700 hover:text-primary-900;
25
+ @apply text-secondary-700 hover:text-secondary-900;
26
26
  }
27
27
 
28
28
  &.button-red {
@@ -180,4 +180,10 @@
180
180
  .pagy-nav-js .page.active {
181
181
  @apply button;
182
182
  }
183
+
184
+ /* Fix Safari issue related to <summary> / <details> arrow */
185
+ details > summary.list-none::-webkit-details-marker,
186
+ details > summary.list-none::marker {
187
+ display: none;
188
+ }
183
189
  }
@@ -14,6 +14,10 @@
14
14
  }
15
15
  }
16
16
 
17
+ .bg-dark-gradient {
18
+ background-image: linear-gradient(to bottom, var(--dark-primary-700), var(--dark-primary-800) 100%);
19
+ }
20
+
17
21
  /**
18
22
  * General
19
23
  **/
@@ -14,7 +14,7 @@ other_options[:help] = [other_options[:help], labels.help].compact.join(" ")
14
14
  errors = [method, method.to_s.gsub(/_id$/, '').to_sym].uniq.map { |attribute| form.object.errors.full_messages_for(attribute) }.flatten
15
15
  has_errors = errors.any? || content_for(:error).present? || other_options[:error].present?
16
16
 
17
- options[:class] = "#{options[:class]} block w-full rounded-md shadow-sm font-light text-sm"
17
+ options[:class] = "#{options[:class]} block w-full rounded-md shadow-sm font-light text-base md:text-sm"
18
18
 
19
19
  options[:class] += if has_errors
20
20
  " pr-10 border-red-500 text-red-900 placeholder-red-500 focus:outline-none focus:ring-red-500 focus:border-red-500 dark:bg-darkPrimary-800 dark:text-darkPrimary-300"
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE html>
2
- <html class="theme-<%= BulletTrain::Themes::Light.color %>">
2
+ <html class="theme-<%= BulletTrain::Themes::Light.color %> <%= "theme-secondary-#{BulletTrain::Themes::Light.secondary_color}" if BulletTrain::Themes::Light.secondary_color %> <%= "theme-logo-color-shift" if BulletTrain::Themes::Light.logo_color_shift %>">
3
3
  <head>
4
4
  <%= render 'shared/layouts/head' %>
5
5
  </head>
@@ -13,7 +13,7 @@
13
13
 
14
14
  <% menu = capture do %>
15
15
  <div class="flex items-center flex-shrink-0 p-4 bg-primary-900 md:rounded-tl-lg electron-draggable electron-title-bar dark:bg-black dark:bg-opacity-10">
16
- <%= image_tag image_path("logo/logo.png"), class: 'h-5 w-auto mx-auto' %>
16
+ <%= image_tag image_path("logo/logo.png"), class: 'theme-logo h-5 w-auto mx-auto' %>
17
17
 
18
18
  <div class="lg:hidden absolute right-0">
19
19
  <button class="ml-1 flex items-center justify-center h-10 w-10 rounded-full focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white dark:ring-transparent"
@@ -39,7 +39,7 @@
39
39
  <div class="text-white">
40
40
  <%= current_user.name %>
41
41
  </div>
42
- <div class="text-2xs tracking-widest uppercase text-primary-300 group-hover:text-white dark:text-gray-500">
42
+ <div class="text-2xs tracking-widest uppercase text-secondary-300 group-hover:text-white dark:text-gray-500">
43
43
  <%= current_team.name %>
44
44
  </div>
45
45
  </div>
@@ -83,7 +83,7 @@
83
83
  data-transition-leave-start="trandarkPrimary-x-0"
84
84
  data-transition-leave-end="-trandarkPrimary-x-full"
85
85
 
86
- class="hidden relative flex-1 flex flex-col max-w-xs w-full pb-4 bg-darkPrimary-800 shadow-xl"
86
+ class="hidden relative flex-1 flex flex-col max-w-xs w-full pb-4 bg-dark-gradient shadow-xl"
87
87
  >
88
88
  <%= menu %>
89
89
  </div>
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE html>
2
- <html class="theme-<%= BulletTrain::Themes::Light.color %>">
2
+ <html class="theme-<%= BulletTrain::Themes::Light.color %> <%= "theme-secondary-#{BulletTrain::Themes::Light.secondary_color}" if BulletTrain::Themes::Light.secondary_color %> <%= "theme-logo-color-shift" if BulletTrain::Themes::Light.logo_color_shift %>">
3
3
  <head>
4
4
  <%= render 'shared/layouts/head' %>
5
5
  </head>
@@ -1,4 +1,3 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
1
  <html xmlns="http://www.w3.org/1999/xhtml">
3
2
  <head>
4
3
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -8,7 +7,7 @@
8
7
  <%= stylesheet_link_tag 'application', media: 'all'%>
9
8
  <%= stylesheet_link_tag 'application.mailer.light', media: 'all' %>
10
9
 
11
- <% # TODO replace with Tailwind CSS styles. %>
10
+ <% # TODO: Find out why Tailwind colors aren't working properly. %>
12
11
  <style type="text/css">
13
12
  *:not(br):not(tr):not(html) {
14
13
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
@@ -44,34 +43,17 @@
44
43
  /* Layout ------------------------------ */
45
44
 
46
45
  .email-wrapper {
47
- width: 100%;
48
- margin: 0;
49
- padding: 0;
50
46
  background-color: #F6F7F8;
51
47
  }
52
-
53
- .email-content {
54
- width: 100%;
55
- margin: 0;
56
- padding: 0;
57
- }
58
48
  /* Masthead ----------------------- */
59
49
 
60
- .email-masthead {
61
- padding: 25px 0;
62
- text-align: center;
63
- }
64
-
65
50
  .email-masthead_logo {
66
51
  width: 94px;
67
52
  }
68
53
 
69
54
  .email-masthead_name {
70
- font-size: 16px;
71
- /*font-weight: bold;*/
72
55
  color: #bbbfc3;
73
56
  text-decoration: none;
74
- /*text-shadow: 0 1px 0 white;*/
75
57
  }
76
58
  /* Body ------------------------------ */
77
59
 
@@ -86,19 +68,9 @@
86
68
  }
87
69
 
88
70
  .email-body_inner {
89
- width: 570px;
90
- margin: 0 auto;
91
- padding: 0;
92
71
  background-color: #FFFFFF;
93
72
  }
94
73
 
95
- .email-footer {
96
- width: 570px;
97
- margin: 0 auto;
98
- padding: 0;
99
- text-align: center;
100
- }
101
-
102
74
  .email-footer p {
103
75
  color: #AAAAAA;
104
76
  }
@@ -111,15 +83,9 @@
111
83
  }
112
84
 
113
85
  .body-sub {
114
- margin-top: 25px;
115
- padding-top: 25px;
116
86
  border-top: 1px solid #EDEFF2;
117
87
  }
118
88
 
119
- .content-cell {
120
- padding: 35px;
121
- }
122
-
123
89
  .preheader {
124
90
  display: none !important;
125
91
  }
@@ -248,19 +214,6 @@
248
214
  .purchase_total--label {
249
215
  padding: 0 15px 0 0;
250
216
  }
251
- /* Utilities ------------------------------ */
252
-
253
- .align-right {
254
- text-align: right;
255
- }
256
-
257
- .align-left {
258
- text-align: left;
259
- }
260
-
261
- .align-center {
262
- text-align: center;
263
- }
264
217
  /*Media Queries ------------------------------ */
265
218
 
266
219
  @media only screen and (max-width: 600px) {
@@ -356,14 +309,6 @@
356
309
  text-align: left;
357
310
  }
358
311
 
359
- p.sub {
360
- font-size: 12px;
361
- }
362
-
363
- p.center {
364
- text-align: center;
365
- }
366
-
367
312
  .body-action.less-footer {
368
313
  margin-bottom: 10px;
369
314
  }
@@ -373,34 +318,34 @@
373
318
  <% if content_for? :preheader %>
374
319
  <span class="preheader"><% yield :preheader %></span>
375
320
  <% end %>
376
- <table class="email-wrapper" width="100%" cellpadding="0" cellspacing="0">
321
+ <table class="email-wrapper w-full m-0 p-0" cellpadding="0" cellspacing="0">
377
322
  <tr>
378
323
  <td align="center">
379
- <table class="email-content" width="100%" cellpadding="0" cellspacing="0">
324
+ <table class="email-content w-full m-0 p-0" cellpadding="0" cellspacing="0">
380
325
  <tr>
381
- <td class="email-masthead">
382
- <a href="<%= root_url %>" class="email-masthead_name">
326
+ <td class="email-masthead p-6 text-center">
327
+ <a href="<%= root_url %>" class="email-masthead_name text-base no-underline">
383
328
  <%= email_image_tag("logo/logo.png", width: image_width_for_height("logo/logo.png", BulletTrain::Themes.logo_height), height: BulletTrain::Themes.logo_height, style: "width: #{image_width_for_height('logo/logo.png', BulletTrain::Themes.logo_height)}px; height: #{BulletTrain::Themes.logo_height}px;") %>
384
329
  </a>
385
330
  </td>
386
331
  </tr>
387
332
  <!-- Email Body -->
388
333
  <tr>
389
- <td class="email-body" width="100%" cellpadding="0" cellspacing="0">
390
- <table class="email-body_inner" align="center" width="570" cellpadding="0" cellspacing="0">
334
+ <td class="email-body w-full m-0 p-0" cellpadding="0" cellspacing="0">
335
+ <table class="email-body_inner w-[570px] m-auto p-0" align="center" width="570" cellpadding="0" cellspacing="0">
391
336
  <!-- Body content -->
392
337
  <tr>
393
- <td class="content-cell">
338
+ <td class="content-cell p-9">
394
339
 
395
340
  <%= yield %>
396
341
 
397
342
  <% if false %>
398
343
  <!-- Sub copy -->
399
- <table class="body-sub">
344
+ <table class="body-sub mt-6 pt-6">
400
345
  <tr>
401
346
  <td>
402
- <p class="sub"><%= t('.trouble') %></p>
403
- <p class="sub">{{action_url}}</p>
347
+ <p class="text-xs"><%= t('.trouble') %></p>
348
+ <p class="text-xs">{{action_url}}</p>
404
349
  </td>
405
350
  </tr>
406
351
  </table>
@@ -412,10 +357,10 @@
412
357
  </tr>
413
358
  <tr>
414
359
  <td>
415
- <table class="email-footer" align="center" width="570" cellpadding="0" cellspacing="0">
360
+ <table class="email-footer w-[570px] m-auto p-0 text-center" cellpadding="0" cellspacing="0">
416
361
  <tr>
417
362
  <td class="content-cell" align="center">
418
- <p class="sub align-center">&copy; <%= t('layouts.mailer.all_rights_reserved', year: Date.today.year, product_name: t('application.name')) %></p>
363
+ <p class="text-xs text-center">&copy; <%= t('layouts.mailer.all_rights_reserved', year: Date.today.year, product_name: t('application.name')) %></p>
419
364
  </td>
420
365
  </tr>
421
366
  </table>
@@ -7,7 +7,7 @@
7
7
  <div class="inline-block indent-child flex items-center">
8
8
  <!-- Heroicon name: home -->
9
9
  <% if p.content_for? :icon %>
10
- <span class="mr-3 h-6 w-6 text-center text-primary-300 text-xl leading-6 dark:text-gray-400">
10
+ <span class="mr-3 h-6 w-6 text-center text-secondary-300 text-xl leading-6 dark:text-gray-400">
11
11
  <%= p.content_for :icon %>
12
12
  </span>
13
13
  <% end %>
@@ -7,7 +7,7 @@
7
7
  <div class="bg-white py-8 px-10 shadow rounded-lg dark:bg-darkPrimary-700">
8
8
  <div class="sm:mx-auto sm:w-full sm:max-w-md py-5">
9
9
  <a href="<%= main_app.root_path %>" class="block py-3">
10
- <img alt="" src="<%= image_path("logo/logo.png") %>" width="<%= image_width_for_height("logo/logo.png", BulletTrain::Themes.logo_height) %>" height="<%= BulletTrain::Themes.logo_height %>" class="mx-auto h-12 w-auto" />
10
+ <img alt="" src="<%= image_path("logo/logo.png") %>" width="<%= image_width_for_height("logo/logo.png", BulletTrain::Themes.logo_height) %>" height="<%= BulletTrain::Themes.logo_height %>" class="theme-logo mx-auto h-12 w-auto" />
11
11
  </a>
12
12
 
13
13
  <h1 class="mt-6 text-center text-3xl font-semibold tracking-tight dark:text-white">
@@ -39,7 +39,7 @@ module BulletTrain
39
39
  BulletTrain::Themes::Light::FileReplacer.replace_content(old: custom_gem_file[:file_name], new: main_app_file)
40
40
  end
41
41
  rescue Errno::ENOENT => _
42
- puts "Skipping \`#{main_app_file}\` because it isn't present."
42
+ puts "Skipping `#{main_app_file}` because it isn't present."
43
43
  end
44
44
 
45
45
  # Only rename file names that still have the original theme in them, i.e. - ./tailwind.config.light.js
@@ -1,7 +1,7 @@
1
1
  module BulletTrain
2
2
  module Themes
3
3
  module Light
4
- VERSION = "1.0.51"
4
+ VERSION = "1.0.52"
5
5
  end
6
6
  end
7
7
  end
@@ -9,6 +9,8 @@ module BulletTrain
9
9
  module Light
10
10
  # TODO Not sure this is the right place for this in the long-term.
11
11
  mattr_accessor :color, default: :blue
12
+ mattr_accessor :secondary_color, default: nil
13
+ mattr_accessor :logo_color_shift, default: false
12
14
  mattr_accessor :original_devise_path
13
15
 
14
16
  class Theme < BulletTrain::Themes::TailwindCss::Theme
@@ -25,9 +25,28 @@ module BulletTrain
25
25
  puts "Ejecting JavaScript into `./app/javascript/application.#{ejected_theme_name}.js`."
26
26
  `cp #{theme_base_path}/app/javascript/application.#{theme_name}.js #{Rails.root}/app/javascript/application.#{ejected_theme_name}.js`
27
27
 
28
- puts "Ejecting all theme partials into `./app/views/themes/#{ejected_theme_name}`."
29
28
  `mkdir #{Rails.root}/app/views/themes`
30
- `cp -R #{theme_base_path}/app/views/themes/#{theme_name} #{Rails.root}/app/views/themes/#{ejected_theme_name}`
29
+
30
+ {
31
+ "bullet_train-themes" => "base",
32
+ "bullet_train-themes-tailwind_css" => "tailwind_css",
33
+ "bullet_train-themes-light" => "light"
34
+ }.each do |gem, theme_name|
35
+ gem_path = `bundle show --paths #{gem}`.chomp
36
+ `find #{gem_path}/app/views/themes`.lines.map(&:chomp).each do |file_or_directory|
37
+ target_file_or_directory = file_or_directory.gsub(gem_path, "").gsub("/#{theme_name}", "/#{ejected_theme_name}")
38
+ target_file_or_directory = Rails.root.to_s + target_file_or_directory
39
+
40
+ if File.directory?(file_or_directory)
41
+ puts "Creating `#{target_file_or_directory}`."
42
+ `mkdir #{target_file_or_directory}`
43
+ else
44
+ puts "Copying `#{target_file_or_directory}`."
45
+ `cp #{file_or_directory} #{target_file_or_directory}`
46
+ end
47
+ end
48
+ end
49
+
31
50
  %x(sed -i #{'""' if `echo $OSTYPE`.include?("darwin")} "s/#{theme_name}/#{ejected_theme_name}/g" #{Rails.root}/app/views/themes/#{ejected_theme_name}/layouts/_head.html.erb)
32
51
 
33
52
  puts "Cutting local `Procfile.dev` over from `#{theme_name}` to `#{ejected_theme_name}`."
@@ -73,7 +92,7 @@ module BulletTrain
73
92
  puts ""
74
93
  puts "When you're done, copy the SSH path from the new repository and return here.".blue
75
94
  ask "We'll ask you to paste it to us in the next step."
76
- `#{Gem::Platform.local.os == "linux" ? "xdg-open" : "open"} https://github.com/new`
95
+ `#{(Gem::Platform.local.os == "linux") ? "xdg-open" : "open"} https://github.com/new`
77
96
 
78
97
  ssh_path = ask "OK, what was the SSH path? (It should look like `git@github.com:your-account/your-new-repo.git`.)"
79
98
  puts ""
@@ -165,7 +184,7 @@ module BulletTrain
165
184
  _, file = path.split("app/views/themes/#{args[:theme]}/")
166
185
  original_theme_path = "#{theme_base_path}/app/views/themes/#{theme_name}/#{file}"
167
186
  if File.read(path) == File.read(original_theme_path)
168
- puts "No changes in \`#{path}\` since being ejected. Removing."
187
+ puts "No changes in `#{path}` since being ejected. Removing."
169
188
  `rm #{path}`
170
189
  end
171
190
  end
@@ -51,6 +51,26 @@ module.exports = {
51
51
  900: 'var(--dark-primary-900)',
52
52
  },
53
53
 
54
+ secondary: {
55
+ 300: 'var(--secondary-300)',
56
+ 400: 'var(--secondary-400)',
57
+ 500: 'var(--secondary-500)',
58
+ 600: 'var(--secondary-600)',
59
+ 700: 'var(--secondary-700)',
60
+ 800: 'var(--secondary-800)',
61
+ 900: 'var(--secondary-900)',
62
+ },
63
+
64
+ darkSecondary: {
65
+ 300: 'var(--dark-secondary-300)',
66
+ 400: 'var(--dark-secondary-400)',
67
+ 500: 'var(--dark-secondary-500)',
68
+ 600: 'var(--dark-secondary-600)',
69
+ 700: 'var(--dark-secondary-700)',
70
+ 800: 'var(--dark-secondary-800)',
71
+ 900: 'var(--dark-secondary-900)',
72
+ },
73
+
54
74
  // This is a weird one-off for dark-mode.
55
75
  darkAccent: {
56
76
  200: 'var(--dark-accent-200)',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bullet_train-themes-light
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.51
4
+ version: 1.0.52
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Culver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-17 00:00:00.000000000 Z
11
+ date: 2022-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: standard
@@ -76,7 +76,6 @@ files:
76
76
  - app/assets/stylesheets/light/fields/phone_field.css
77
77
  - app/assets/stylesheets/light/fields/super_select.css
78
78
  - app/assets/stylesheets/light/fields/trix_editor.css
79
- - app/assets/stylesheets/light/mailer.scss
80
79
  - app/assets/stylesheets/light/tailwind/colors.css
81
80
  - app/assets/stylesheets/light/tailwind/components.css
82
81
  - app/assets/stylesheets/light/tailwind/dark-mode.css
@@ -1,359 +0,0 @@
1
- // TODO there is a ton of duplicate here that we can clean up!
2
-
3
- *:not(br):not(tr):not(html) {
4
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
5
- box-sizing: border-box;
6
- }
7
-
8
- body {
9
- width: 100% !important;
10
- height: 100%;
11
- margin: 0;
12
- line-height: 1.4;
13
- background-color: #F6F7F8;
14
- color: #3E4B5B;
15
- font-size: 16px;
16
- -webkit-text-size-adjust: none;
17
- }
18
-
19
- p,
20
- ul,
21
- ol,
22
- blockquote {
23
- line-height: 1.4;
24
- text-align: left;
25
- }
26
-
27
- a {
28
- color: #047BF8;
29
- }
30
-
31
- a img {
32
- border: none;
33
- }
34
- /* Layout ------------------------------ */
35
-
36
- .email-wrapper {
37
- width: 100%;
38
- margin: 0;
39
- padding: 0;
40
- background-color: #F6F7F8;
41
- }
42
-
43
- .email-content {
44
- width: 100%;
45
- margin: 0;
46
- padding: 0;
47
- }
48
- /* Masthead ----------------------- */
49
-
50
- .email-masthead {
51
- padding: 25px 0;
52
- text-align: center;
53
- }
54
-
55
- .email-masthead_logo {
56
- width: 94px;
57
- }
58
-
59
- .email-masthead_name {
60
- font-size: 16px;
61
- /*font-weight: bold;*/
62
- color: #bbbfc3;
63
- text-decoration: none;
64
- /*text-shadow: 0 1px 0 white;*/
65
- }
66
- /* Body ------------------------------ */
67
-
68
- .email-body {
69
- width: 100%;
70
- margin: 0;
71
- padding: 0;
72
- border-top: 1px solid #EDEFF2;
73
- border-bottom: 1px solid #EDEFF2;
74
- background-color: #FFFFFF;
75
-
76
- }
77
-
78
- .email-body_inner {
79
- width: 570px;
80
- margin: 0 auto;
81
- padding: 0;
82
- background-color: #FFFFFF;
83
- }
84
-
85
- .email-footer {
86
- width: 570px;
87
- margin: 0 auto;
88
- padding: 0;
89
- text-align: center;
90
- }
91
-
92
- .email-footer p {
93
- color: #AAAAAA;
94
- }
95
-
96
- .body-action {
97
- width: 100%;
98
- margin: 30px auto;
99
- padding: 0;
100
- text-align: center;
101
- }
102
-
103
- .body-sub {
104
- margin-top: 25px;
105
- padding-top: 25px;
106
- border-top: 1px solid #EDEFF2;
107
- }
108
-
109
- .content-cell {
110
- padding: 35px;
111
- }
112
-
113
- .preheader {
114
- display: none !important;
115
- }
116
- /* Attribute list ------------------------------ */
117
-
118
- .attributes {
119
- margin: 0 0 21px;
120
- }
121
-
122
- .attributes_content {
123
- background-color: #EDEFF2;
124
- padding: 16px;
125
- }
126
-
127
- .attributes_item {
128
- padding: 0;
129
- }
130
- /* Related Items ------------------------------ */
131
-
132
- .related {
133
- width: 100%;
134
- margin: 0;
135
- padding: 25px 0 0 0;
136
- }
137
-
138
- .related_item {
139
- padding: 10px 0;
140
- color: #3E4B5B;
141
- font-size: 15px;
142
- line-height: 18px;
143
- }
144
-
145
- .related_item-title {
146
- display: block;
147
- margin: .5em 0 0;
148
- }
149
-
150
- .related_item-thumb {
151
- display: block;
152
- padding-bottom: 10px;
153
- }
154
-
155
- .related_heading {
156
- border-top: 1px solid #EDEFF2;
157
- text-align: center;
158
- padding: 25px 0 10px;
159
- }
160
- /* Discount Code ------------------------------ */
161
-
162
- .discount {
163
- width: 100%;
164
- margin: 0;
165
- padding: 24px;
166
- background-color: #EDEFF2;
167
- border: 2px dashed #9BA2AB;
168
- }
169
-
170
- .discount_heading {
171
- text-align: center;
172
- }
173
-
174
- .discount_body {
175
- text-align: center;
176
- font-size: 15px;
177
- }
178
- /* Social Icons ------------------------------ */
179
-
180
- .social {
181
- width: auto;
182
- }
183
-
184
- .social td {
185
- padding: 0;
186
- width: auto;
187
- }
188
-
189
- .social_icon {
190
- height: 20px;
191
- margin: 0 8px 10px 8px;
192
- padding: 0;
193
- }
194
- /* Data table ------------------------------ */
195
-
196
- .purchase {
197
- width: 100%;
198
- margin: 0;
199
- padding: 35px 0;
200
- }
201
-
202
- .purchase_content {
203
- width: 100%;
204
- margin: 0;
205
- padding: 25px 0 0 0;
206
- }
207
-
208
- .purchase_item {
209
- padding: 10px 0;
210
- color: #3E4B5B;
211
- font-size: 15px;
212
- line-height: 18px;
213
- }
214
-
215
- .purchase_heading {
216
- padding-bottom: 8px;
217
- border-bottom: 1px solid #EDEFF2;
218
- }
219
-
220
- .purchase_heading p {
221
- margin: 0;
222
- color: #9BA2AB;
223
- font-size: 12px;
224
- }
225
-
226
- .purchase_footer {
227
- padding-top: 15px;
228
- border-top: 1px solid #EDEFF2;
229
- }
230
-
231
- .purchase_total {
232
- margin: 0;
233
- text-align: right;
234
- /*font-weight: bold;*/
235
- color: #3E4B5B;
236
- }
237
-
238
- .purchase_total--label {
239
- padding: 0 15px 0 0;
240
- }
241
- /* Utilities ------------------------------ */
242
-
243
- .align-right {
244
- text-align: right;
245
- }
246
-
247
- .align-left {
248
- text-align: left;
249
- }
250
-
251
- .align-center {
252
- text-align: center;
253
- }
254
- /*Media Queries ------------------------------ */
255
-
256
- @media only screen and (max-width: 600px) {
257
- .email-body_inner,
258
- .email-footer {
259
- width: 100% !important;
260
- }
261
- }
262
-
263
- @media only screen and (max-width: 500px) {
264
- .button {
265
- width: 100% !important;
266
- }
267
- }
268
- /* Buttons ------------------------------ */
269
-
270
- .button {
271
- background-color: #047BF8;
272
- border-top: 10px solid #047BF8;
273
- border-right: 18px solid #047BF8;
274
- border-bottom: 10px solid #047BF8;
275
- border-left: 18px solid #047BF8;
276
- display: inline-block;
277
- color: #FFF;
278
- text-decoration: none;
279
- border-radius: 3px;
280
- -webkit-text-size-adjust: none;
281
- line-height: 22px;
282
- font-size: 16px;
283
- color: #FFF;
284
- }
285
-
286
- .button--link {
287
- background-color: transparent;
288
- border-top: 10px solid transparent;
289
- border-right: 18px solid transparent;
290
- border-bottom: 10px solid transparent;
291
- border-left: 18px solid transparent;
292
- display: inline-block;
293
- color: #047BF8;
294
- text-decoration: underline;
295
- border-radius: 3px;
296
- /*box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16);*/
297
- -webkit-text-size-adjust: none;
298
- }
299
-
300
- .button--green {
301
- background-color: #22BC66;
302
- border-top: 10px solid #22BC66;
303
- border-right: 18px solid #22BC66;
304
- border-bottom: 10px solid #22BC66;
305
- border-left: 18px solid #22BC66;
306
- }
307
-
308
- .button--red {
309
- background-color: #FF6136;
310
- border-top: 10px solid #FF6136;
311
- border-right: 18px solid #FF6136;
312
- border-bottom: 10px solid #FF6136;
313
- border-left: 18px solid #FF6136;
314
- }
315
- /* Type ------------------------------ */
316
-
317
- h1 {
318
- margin-top: 0;
319
- color: #3E4B5B;
320
- font-size: 19px;
321
- font-weight: bold;
322
- text-align: left;
323
- }
324
-
325
- h2 {
326
- margin-top: 0;
327
- color: #3E4B5B;
328
- font-size: 16px;
329
- font-weight: bold;
330
- text-align: left;
331
- }
332
-
333
- h3 {
334
- margin-top: 0;
335
- color: #3E4B5B;
336
- font-size: 14px;
337
- font-weight: bold;
338
- text-align: left;
339
- }
340
-
341
- p {
342
- margin-top: 0;
343
- color: #3E4B5B;
344
- font-size: 16px;
345
- line-height: 1.5em;
346
- text-align: left;
347
- }
348
-
349
- p.sub {
350
- font-size: 12px;
351
- }
352
-
353
- p.center {
354
- text-align: center;
355
- }
356
-
357
- .body-action.less-footer {
358
- margin-bottom: 10px;
359
- }