@yafnet/theme-kit 0.0.0-stage → 4.0.11

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 (297) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +103 -2
  3. package/bin/yafnet-theme.js +409 -0
  4. package/email/bootstrap-email/bootstrap-email.scss +26 -0
  5. package/email/bootstrap-email/bootstrap-head.scss +169 -0
  6. package/email/bootstrap-email/layout.html.erb +12 -0
  7. package/email/bootstrap-email/scss/_helpers.scss +3 -0
  8. package/email/bootstrap-email/scss/_reboot_email.scss +54 -0
  9. package/email/bootstrap-email/scss/_reboot_head.scss +59 -0
  10. package/email/bootstrap-email/scss/_variables.scss +7 -0
  11. package/email/bootstrap-email/scss/components/_alert.scss +21 -0
  12. package/email/bootstrap-email/scss/components/_badge.scss +61 -0
  13. package/email/bootstrap-email/scss/components/_button.scss +47 -0
  14. package/email/bootstrap-email/scss/components/_card.scss +19 -0
  15. package/email/bootstrap-email/scss/components/_container.scss +18 -0
  16. package/email/bootstrap-email/scss/components/_grid.scss +43 -0
  17. package/email/bootstrap-email/scss/components/_hr.scss +8 -0
  18. package/email/bootstrap-email/scss/components/_image.scss +6 -0
  19. package/email/bootstrap-email/scss/components/_preview.scss +5 -0
  20. package/email/bootstrap-email/scss/components/_stack.scss +39 -0
  21. package/email/bootstrap-email/scss/components/_table.scss +137 -0
  22. package/email/bootstrap-email/scss/helpers/_functions.scss +29 -0
  23. package/email/bootstrap-email/scss/helpers/_mixins.scss +21 -0
  24. package/email/bootstrap-email/scss/helpers/_selectors_for_utils.scss +124 -0
  25. package/email/bootstrap-email/scss/utilities/_background.scss +5 -0
  26. package/email/bootstrap-email/scss/utilities/_border-radius.scss +21 -0
  27. package/email/bootstrap-email/scss/utilities/_border.scss +13 -0
  28. package/email/bootstrap-email/scss/utilities/_color.scss +9 -0
  29. package/email/bootstrap-email/scss/utilities/_display.scss +7 -0
  30. package/email/bootstrap-email/scss/utilities/_sizing.scss +35 -0
  31. package/email/bootstrap-email/scss/utilities/_spacing.scss +18 -0
  32. package/email/bootstrap-email/scss/utilities/_text-decoration.scss +9 -0
  33. package/email/bootstrap-email/scss/utilities/_typography.scss +56 -0
  34. package/email/bootstrap-email/scss/utilities/_valign.scss +5 -0
  35. package/email/bootstrap-email/scss/variables/_body.scss +2 -0
  36. package/email/bootstrap-email/scss/variables/_borders.scss +6 -0
  37. package/email/bootstrap-email/scss/variables/_buttons.scss +47 -0
  38. package/email/bootstrap-email/scss/variables/_colors.scss +161 -0
  39. package/email/bootstrap-email/scss/variables/_tables.scss +4 -0
  40. package/email/bootstrap-email/scss/variables/_typography.scss +26 -0
  41. package/email/bootstrap-email/scss/variables/_utilities.scss +154 -0
  42. package/email/bootstrap-email/templates/body.html +8 -0
  43. package/email/bootstrap-email/templates/button.html +9 -0
  44. package/email/bootstrap-email/templates/container.html +29 -0
  45. package/email/bootstrap-email/templates/div.html +3 -0
  46. package/email/bootstrap-email/templates/table-left.html +9 -0
  47. package/email/bootstrap-email/templates/table-to-tbody.html +5 -0
  48. package/email/bootstrap-email/templates/table-to-tr.html +7 -0
  49. package/email/bootstrap-email/templates/table.html +9 -0
  50. package/email/bootstrap-email/templates/td.html +3 -0
  51. package/email/bootstrap-email/templates/tr.html +5 -0
  52. package/email/prebuilt/brite/DigestTopicTemplate.html +57 -0
  53. package/email/prebuilt/brite/EmailTemplate.html +116 -0
  54. package/email/prebuilt/cerulean/DigestTopicTemplate.html +57 -0
  55. package/email/prebuilt/cerulean/EmailTemplate.html +116 -0
  56. package/email/prebuilt/cosmo/DigestTopicTemplate.html +57 -0
  57. package/email/prebuilt/cosmo/EmailTemplate.html +116 -0
  58. package/email/prebuilt/cyborg/DigestTopicTemplate.html +57 -0
  59. package/email/prebuilt/cyborg/EmailTemplate.html +116 -0
  60. package/email/prebuilt/darkly/DigestTopicTemplate.html +57 -0
  61. package/email/prebuilt/darkly/EmailTemplate.html +116 -0
  62. package/email/prebuilt/flatly/DigestTopicTemplate.html +57 -0
  63. package/email/prebuilt/flatly/EmailTemplate.html +116 -0
  64. package/email/prebuilt/journal/DigestTopicTemplate.html +57 -0
  65. package/email/prebuilt/journal/EmailTemplate.html +116 -0
  66. package/email/prebuilt/litera/DigestTopicTemplate.html +57 -0
  67. package/email/prebuilt/litera/EmailTemplate.html +116 -0
  68. package/email/prebuilt/lumen/DigestTopicTemplate.html +57 -0
  69. package/email/prebuilt/lumen/EmailTemplate.html +116 -0
  70. package/email/prebuilt/lux/DigestTopicTemplate.html +57 -0
  71. package/email/prebuilt/lux/EmailTemplate.html +116 -0
  72. package/email/prebuilt/materia/DigestTopicTemplate.html +57 -0
  73. package/email/prebuilt/materia/EmailTemplate.html +116 -0
  74. package/email/prebuilt/minty/DigestTopicTemplate.html +57 -0
  75. package/email/prebuilt/minty/EmailTemplate.html +116 -0
  76. package/email/prebuilt/morph/DigestTopicTemplate.html +57 -0
  77. package/email/prebuilt/morph/EmailTemplate.html +116 -0
  78. package/email/prebuilt/pulse/DigestTopicTemplate.html +57 -0
  79. package/email/prebuilt/pulse/EmailTemplate.html +116 -0
  80. package/email/prebuilt/quartz/DigestTopicTemplate.html +57 -0
  81. package/email/prebuilt/quartz/EmailTemplate.html +116 -0
  82. package/email/prebuilt/sandstone/DigestTopicTemplate.html +57 -0
  83. package/email/prebuilt/sandstone/EmailTemplate.html +116 -0
  84. package/email/prebuilt/simplex/DigestTopicTemplate.html +57 -0
  85. package/email/prebuilt/simplex/EmailTemplate.html +116 -0
  86. package/email/prebuilt/sketchy/DigestTopicTemplate.html +57 -0
  87. package/email/prebuilt/sketchy/EmailTemplate.html +116 -0
  88. package/email/prebuilt/slate/DigestTopicTemplate.html +57 -0
  89. package/email/prebuilt/slate/EmailTemplate.html +116 -0
  90. package/email/prebuilt/solar/DigestTopicTemplate.html +57 -0
  91. package/email/prebuilt/solar/EmailTemplate.html +116 -0
  92. package/email/prebuilt/spacelab/DigestTopicTemplate.html +57 -0
  93. package/email/prebuilt/spacelab/EmailTemplate.html +116 -0
  94. package/email/prebuilt/superhero/DigestTopicTemplate.html +57 -0
  95. package/email/prebuilt/superhero/EmailTemplate.html +116 -0
  96. package/email/prebuilt/united/DigestTopicTemplate.html +57 -0
  97. package/email/prebuilt/united/EmailTemplate.html +116 -0
  98. package/email/prebuilt/vapor/DigestTopicTemplate.html +57 -0
  99. package/email/prebuilt/vapor/EmailTemplate.html +116 -0
  100. package/email/prebuilt/yaf/DigestTopicTemplate.html +57 -0
  101. package/email/prebuilt/yaf/EmailTemplate.html +116 -0
  102. package/email/prebuilt/yeti/DigestTopicTemplate.html +57 -0
  103. package/email/prebuilt/yeti/EmailTemplate.html +116 -0
  104. package/email/prebuilt/zephyr/DigestTopicTemplate.html +57 -0
  105. package/email/prebuilt/zephyr/EmailTemplate.html +116 -0
  106. package/email/resources/DigestTopicTemplate.html +23 -0
  107. package/email/resources/EmailTemplate.html +27 -0
  108. package/package.json +41 -5
  109. package/scss/choices/bs-theme.scss +47 -0
  110. package/scss/choices/choices.scss +376 -0
  111. package/scss/forum/chat.scss +99 -0
  112. package/scss/netStack.scss +32 -0
  113. package/themes/brite/LICENSE.md +21 -0
  114. package/themes/brite/_bootswatch.scss +381 -0
  115. package/themes/brite/_variables.scss +236 -0
  116. package/themes/brite/bootstrap-email.scss +35 -0
  117. package/themes/brite/bootstrap-forum.scss +8 -0
  118. package/themes/brite/bootstrap_email-digest.json +5 -0
  119. package/themes/brite/bootstrap_email.json +4 -0
  120. package/themes/cerulean/LICENSE.md +21 -0
  121. package/themes/cerulean/_bootswatch.scss +116 -0
  122. package/themes/cerulean/_variables.scss +64 -0
  123. package/themes/cerulean/bootstrap-email.scss +35 -0
  124. package/themes/cerulean/bootstrap-forum.scss +8 -0
  125. package/themes/cerulean/bootstrap_email-digest.json +5 -0
  126. package/themes/cerulean/bootstrap_email.json +4 -0
  127. package/themes/cosmo/LICENSE.md +21 -0
  128. package/themes/cosmo/_bootswatch.scss +53 -0
  129. package/themes/cosmo/_variables.scss +73 -0
  130. package/themes/cosmo/bootstrap-email.scss +35 -0
  131. package/themes/cosmo/bootstrap-forum.scss +8 -0
  132. package/themes/cosmo/bootstrap_email-digest.json +5 -0
  133. package/themes/cosmo/bootstrap_email.json +4 -0
  134. package/themes/cyborg/LICENSE.md +21 -0
  135. package/themes/cyborg/_bootswatch.scss +146 -0
  136. package/themes/cyborg/_variables.scss +185 -0
  137. package/themes/cyborg/bootstrap-email.scss +35 -0
  138. package/themes/cyborg/bootstrap-forum.scss +8 -0
  139. package/themes/cyborg/bootstrap_email-digest.json +5 -0
  140. package/themes/cyborg/bootstrap_email.json +4 -0
  141. package/themes/darkly/LICENSE.md +21 -0
  142. package/themes/darkly/_bootswatch.scss +78 -0
  143. package/themes/darkly/_variables.scss +184 -0
  144. package/themes/darkly/bootstrap-email.scss +35 -0
  145. package/themes/darkly/bootstrap-forum.scss +8 -0
  146. package/themes/darkly/bootstrap_email-digest.json +5 -0
  147. package/themes/darkly/bootstrap_email.json +4 -0
  148. package/themes/flatly/LICENSE.md +21 -0
  149. package/themes/flatly/_bootswatch.scss +65 -0
  150. package/themes/flatly/_variables.scss +120 -0
  151. package/themes/flatly/bootstrap-email.scss +35 -0
  152. package/themes/flatly/bootstrap-forum.scss +8 -0
  153. package/themes/flatly/bootstrap_email-digest.json +5 -0
  154. package/themes/flatly/bootstrap_email.json +4 -0
  155. package/themes/journal/LICENSE.md +21 -0
  156. package/themes/journal/_bootswatch.scss +57 -0
  157. package/themes/journal/_variables.scss +64 -0
  158. package/themes/journal/bootstrap-email.scss +35 -0
  159. package/themes/journal/bootstrap-forum.scss +8 -0
  160. package/themes/journal/bootstrap_email-digest.json +5 -0
  161. package/themes/journal/bootstrap_email.json +4 -0
  162. package/themes/litera/LICENSE.md +21 -0
  163. package/themes/litera/_bootswatch.scss +98 -0
  164. package/themes/litera/_variables.scss +97 -0
  165. package/themes/litera/bootstrap-email.scss +35 -0
  166. package/themes/litera/bootstrap-forum.scss +8 -0
  167. package/themes/litera/bootstrap_email-digest.json +5 -0
  168. package/themes/litera/bootstrap_email.json +4 -0
  169. package/themes/lumen/LICENSE.md +21 -0
  170. package/themes/lumen/_bootswatch.scss +339 -0
  171. package/themes/lumen/_variables.scss +98 -0
  172. package/themes/lumen/bootstrap-email.scss +35 -0
  173. package/themes/lumen/bootstrap-forum.scss +8 -0
  174. package/themes/lumen/bootstrap_email-digest.json +5 -0
  175. package/themes/lumen/bootstrap_email.json +4 -0
  176. package/themes/lux/LICENSE.md +21 -0
  177. package/themes/lux/_bootswatch.scss +304 -0
  178. package/themes/lux/_variables.scss +124 -0
  179. package/themes/lux/bootstrap-email.scss +35 -0
  180. package/themes/lux/bootstrap-forum.scss +8 -0
  181. package/themes/lux/bootstrap_email-digest.json +5 -0
  182. package/themes/lux/bootstrap_email.json +4 -0
  183. package/themes/materia/LICENSE.md +21 -0
  184. package/themes/materia/_bootswatch.scss +654 -0
  185. package/themes/materia/_variables.scss +126 -0
  186. package/themes/materia/bootstrap-email.scss +35 -0
  187. package/themes/materia/bootstrap-forum.scss +8 -0
  188. package/themes/materia/bootstrap_email-digest.json +5 -0
  189. package/themes/materia/bootstrap_email.json +4 -0
  190. package/themes/minty/LICENSE.md +21 -0
  191. package/themes/minty/_bootswatch.scss +142 -0
  192. package/themes/minty/_variables.scss +100 -0
  193. package/themes/minty/bootstrap-email.scss +35 -0
  194. package/themes/minty/bootstrap-forum.scss +8 -0
  195. package/themes/minty/bootstrap_email-digest.json +5 -0
  196. package/themes/minty/bootstrap_email.json +4 -0
  197. package/themes/morph/LICENSE.md +21 -0
  198. package/themes/morph/_bootswatch.scss +562 -0
  199. package/themes/morph/_variables.scss +223 -0
  200. package/themes/morph/bootstrap-email.scss +35 -0
  201. package/themes/morph/bootstrap-forum.scss +8 -0
  202. package/themes/morph/bootstrap_email-digest.json +5 -0
  203. package/themes/morph/bootstrap_email.json +4 -0
  204. package/themes/pulse/LICENSE.md +21 -0
  205. package/themes/pulse/_bootswatch.scss +155 -0
  206. package/themes/pulse/_variables.scss +92 -0
  207. package/themes/pulse/bootstrap-email.scss +35 -0
  208. package/themes/pulse/bootstrap-forum.scss +8 -0
  209. package/themes/pulse/bootstrap_email-digest.json +5 -0
  210. package/themes/pulse/bootstrap_email.json +4 -0
  211. package/themes/quartz/_bootswatch.scss +297 -0
  212. package/themes/quartz/_variables.scss +226 -0
  213. package/themes/quartz/bootstrap-email.scss +35 -0
  214. package/themes/quartz/bootstrap-forum.scss +8 -0
  215. package/themes/quartz/bootstrap_email-digest.json +5 -0
  216. package/themes/quartz/bootstrap_email.json +4 -0
  217. package/themes/sandstone/LICENSE.md +21 -0
  218. package/themes/sandstone/_bootswatch.scss +242 -0
  219. package/themes/sandstone/_variables.scss +139 -0
  220. package/themes/sandstone/bootstrap-email.scss +35 -0
  221. package/themes/sandstone/bootstrap-forum.scss +8 -0
  222. package/themes/sandstone/bootstrap_email-digest.json +5 -0
  223. package/themes/sandstone/bootstrap_email.json +4 -0
  224. package/themes/simplex/LICENSE.md +21 -0
  225. package/themes/simplex/_bootswatch.scss +150 -0
  226. package/themes/simplex/_variables.scss +105 -0
  227. package/themes/simplex/bootstrap-email.scss +35 -0
  228. package/themes/simplex/bootstrap-forum.scss +8 -0
  229. package/themes/simplex/bootstrap_email-digest.json +5 -0
  230. package/themes/simplex/bootstrap_email.json +4 -0
  231. package/themes/sketchy/LICENSE.md +21 -0
  232. package/themes/sketchy/_bootswatch.scss +557 -0
  233. package/themes/sketchy/_variables.scss +156 -0
  234. package/themes/sketchy/bootstrap-email.scss +35 -0
  235. package/themes/sketchy/bootstrap-forum.scss +8 -0
  236. package/themes/sketchy/bootstrap_email-digest.json +5 -0
  237. package/themes/sketchy/bootstrap_email.json +4 -0
  238. package/themes/slate/LICENSE.md +21 -0
  239. package/themes/slate/_bootswatch.scss +340 -0
  240. package/themes/slate/_variables.scss +187 -0
  241. package/themes/slate/bootstrap-email.scss +35 -0
  242. package/themes/slate/bootstrap-forum.scss +8 -0
  243. package/themes/slate/bootstrap_email-digest.json +5 -0
  244. package/themes/slate/bootstrap_email.json +4 -0
  245. package/themes/solar/LICENSE.md +21 -0
  246. package/themes/solar/_bootswatch.scss +66 -0
  247. package/themes/solar/_variables.scss +193 -0
  248. package/themes/solar/bootstrap-email.scss +35 -0
  249. package/themes/solar/bootstrap-forum.scss +8 -0
  250. package/themes/solar/bootstrap_email-digest.json +5 -0
  251. package/themes/solar/bootstrap_email.json +4 -0
  252. package/themes/spacelab/LICENSE.md +21 -0
  253. package/themes/spacelab/_bootswatch.scss +107 -0
  254. package/themes/spacelab/_variables.scss +65 -0
  255. package/themes/spacelab/bootstrap-email.scss +35 -0
  256. package/themes/spacelab/bootstrap-forum.scss +8 -0
  257. package/themes/spacelab/bootstrap_email-digest.json +5 -0
  258. package/themes/spacelab/bootstrap_email.json +4 -0
  259. package/themes/superhero/LICENSE.md +21 -0
  260. package/themes/superhero/_bootswatch.scss +153 -0
  261. package/themes/superhero/_variables.scss +202 -0
  262. package/themes/superhero/bootstrap-email.scss +35 -0
  263. package/themes/superhero/bootstrap-forum.scss +8 -0
  264. package/themes/superhero/bootstrap_email-digest.json +5 -0
  265. package/themes/superhero/bootstrap_email.json +4 -0
  266. package/themes/united/LICENSE.md +21 -0
  267. package/themes/united/_bootswatch.scss +30 -0
  268. package/themes/united/_variables.scss +56 -0
  269. package/themes/united/bootstrap-email.scss +35 -0
  270. package/themes/united/bootstrap-forum.scss +8 -0
  271. package/themes/united/bootstrap_email-digest.json +5 -0
  272. package/themes/united/bootstrap_email.json +4 -0
  273. package/themes/vapor/_bootswatch.scss +337 -0
  274. package/themes/vapor/_variables.scss +176 -0
  275. package/themes/vapor/bootstrap-email.scss +35 -0
  276. package/themes/vapor/bootstrap-forum.scss +8 -0
  277. package/themes/vapor/bootstrap_email-digest.json +5 -0
  278. package/themes/vapor/bootstrap_email.json +4 -0
  279. package/themes/yaf/_variables-email.scss +39 -0
  280. package/themes/yaf/_variables.scss +10 -0
  281. package/themes/yaf/bootstrap-email.scss +35 -0
  282. package/themes/yaf/bootstrap-forum.scss +8 -0
  283. package/themes/yaf/bootstrap_email-digest.json +5 -0
  284. package/themes/yaf/bootstrap_email.json +4 -0
  285. package/themes/yeti/LICENSE.md +21 -0
  286. package/themes/yeti/_bootswatch.scss +344 -0
  287. package/themes/yeti/_variables.scss +107 -0
  288. package/themes/yeti/bootstrap-email.scss +35 -0
  289. package/themes/yeti/bootstrap-forum.scss +8 -0
  290. package/themes/yeti/bootstrap_email-digest.json +5 -0
  291. package/themes/yeti/bootstrap_email.json +4 -0
  292. package/themes/zephyr/_bootswatch.scss +221 -0
  293. package/themes/zephyr/_variables.scss +157 -0
  294. package/themes/zephyr/bootstrap-email.scss +35 -0
  295. package/themes/zephyr/bootstrap-forum.scss +8 -0
  296. package/themes/zephyr/bootstrap_email-digest.json +5 -0
  297. package/themes/zephyr/bootstrap_email.json +4 -0
@@ -0,0 +1,654 @@
1
+ // Materia 5.3.8
2
+ // Bootswatch
3
+
4
+
5
+ // Variables
6
+
7
+ $web-font-path: "https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" !default;
8
+ @if $web-font-path {
9
+ @import url("#{$web-font-path}");
10
+ }
11
+
12
+ // Mixins
13
+
14
+ @mixin ripple($color) {
15
+ position: relative;
16
+
17
+ &::before {
18
+ position: absolute;
19
+ top: 0;
20
+ left: 0;
21
+ display: block;
22
+ width: 100%;
23
+ height: 100%;
24
+ margin-left: 0;
25
+ pointer-events: none;
26
+ content: "";
27
+ background-position: 50%;
28
+ background-size: 1000% 1000%;
29
+ border: none;
30
+ opacity: 0;
31
+ transition: background .5s, opacity 1s;
32
+ @include gradient-radial($color 10%, transparent 10.01%);
33
+ }
34
+
35
+ &:active::before {
36
+ background-size: 0 0;
37
+ opacity: .2;
38
+ transition: none;
39
+ }
40
+
41
+ &.disabled,
42
+ &[disabled] {
43
+ &::before {
44
+ display: none;
45
+ }
46
+ }
47
+ }
48
+
49
+ @mixin btn($class,$bg,$color) {
50
+ .btn-#{$class} {
51
+ &:focus {
52
+ background-color: $bg;
53
+ box-shadow: 0 0 0 2px rgba(204, 204, 204, .5);
54
+ }
55
+
56
+ &:hover,
57
+ &:active:hover {
58
+ background-color: shade-color($bg, 12%);
59
+ }
60
+
61
+ &:active {
62
+ box-shadow: 2px 2px 4px rgba(0, 0, 0, .4);
63
+ }
64
+
65
+ @include ripple($color);
66
+ }
67
+
68
+ .btn-outline-#{$class} {
69
+ @include ripple($color);
70
+ }
71
+ }
72
+
73
+ .dropdown-toggle::after,
74
+ .dropup .dropdown-toggle::after,
75
+ .dropstart .dropdown-toggle::after,
76
+ .dropend .dropdown-toggle::after {
77
+ border-width: 4px;
78
+ }
79
+
80
+ // Navbar
81
+
82
+ .navbar {
83
+ border: none;
84
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .3);
85
+
86
+ &-brand {
87
+ font-size: 24px;
88
+ }
89
+
90
+ &-nav .nav-link {
91
+ padding-top: .9rem;
92
+ padding-bottom: .9rem;
93
+ }
94
+
95
+ &.bg-dark,
96
+ &.bg-primary {
97
+ input[type="search"],
98
+ input[type="text"],
99
+ input[type="password"],
100
+ input[type="email"],
101
+ input[type="number"],
102
+ input[type="tel"] {
103
+ color: $white;
104
+ box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .5);
105
+
106
+ &:focus {
107
+ box-shadow: inset 0 -2px 0 $white;
108
+ }
109
+
110
+ &::placeholder {
111
+ color: rgba(255, 255, 255, .5);
112
+ }
113
+ }
114
+ }
115
+ }
116
+
117
+ // Buttons
118
+
119
+ @include btn(primary, $primary, $white);
120
+ @include btn(secondary, $secondary, $gray-500);
121
+ @include btn(success, $success, $white);
122
+ @include btn(info, $info, $white);
123
+ @include btn(warning, $warning, $white);
124
+ @include btn(danger, $danger, $white);
125
+ @include btn(dark, $dark, $white);
126
+ @include btn(light, $light, $white);
127
+
128
+ .btn {
129
+ text-transform: uppercase;
130
+ border: none;
131
+ box-shadow: 0 1px 4px rgba(0, 0, 0, .4);
132
+ transition: color .4s, background-color .4s, border-color .4s, box-shadow .4s;
133
+
134
+ &-link {
135
+ color: $link-color;
136
+ box-shadow: none;
137
+
138
+ &:hover,
139
+ &:focus {
140
+ color: $link-hover-color;
141
+ text-decoration: $link-hover-decoration;
142
+ box-shadow: none;
143
+ }
144
+
145
+ &.disabled, // Although btn-link is intended for buttons, which want to look like link, I include here a.disable for the sake of consistency
146
+ &[disabled],
147
+ fieldset[disabled] & {
148
+ &:hover,
149
+ &:active:hover {
150
+ color: $btn-link-disabled-color;
151
+ text-decoration: none;
152
+ }
153
+ }
154
+ }
155
+
156
+ &-secondary {
157
+ &.disabled,
158
+ &[disabled],
159
+ fieldset[disabled] & {
160
+ color: rgba(0, 0, 0, .4);
161
+ background-color: rgba(0, 0, 0, .1);
162
+ opacity: 1;
163
+
164
+ &:hover,
165
+ &:focus {
166
+ background-color: rgba(0, 0, 0, .1);
167
+ }
168
+ }
169
+ }
170
+
171
+ &-outline-secondary {
172
+ color: $gray-300;
173
+ border-color: $gray-200;
174
+ }
175
+
176
+ &-warning {
177
+ color: $white;
178
+ }
179
+ }
180
+
181
+ .btn-group {
182
+ .btn + .btn,
183
+ .btn + .btn-group,
184
+ .btn-group + .btn,
185
+ .btn-group + .btn-group {
186
+ margin-left: 0;
187
+ }
188
+
189
+ &-vertical {
190
+ > .btn + .btn,
191
+ > .btn + .btn-group,
192
+ > .btn-group + .btn,
193
+ > .btn-group + .btn-group {
194
+ margin-top: 0;
195
+ }
196
+ }
197
+
198
+ .btn + .btn,
199
+ .btn + .btn-group > .dropdown-toggle {
200
+ box-shadow: 1px 1px 4px rgba(0, 0, 0, .4);
201
+ }
202
+ }
203
+
204
+ .border-secondary {
205
+ border: 1px solid #dfdfdf !important;
206
+ }
207
+
208
+ // Typography
209
+
210
+ body,
211
+ input,
212
+ button {
213
+ letter-spacing: .1px;
214
+ }
215
+
216
+ p {
217
+ margin: 0 0 1em;
218
+ }
219
+
220
+ .text-secondary {
221
+ color: $gray-500 !important;
222
+ }
223
+
224
+ // Tables
225
+
226
+ .table-hover {
227
+ > tbody > tr,
228
+ > tbody > tr > th,
229
+ > tbody > tr > td {
230
+ transition: background-color .2s, color .2s;
231
+ }
232
+ }
233
+
234
+ .thead-inverse th {
235
+ color: $white;
236
+ background-color: $primary;
237
+ }
238
+
239
+ .table-primary,
240
+ .table-secondary,
241
+ .table-success,
242
+ .table-warning,
243
+ .table-danger,
244
+ .table-info,
245
+ .table-light {
246
+ --#{$prefix}table-color: #{$body-color};
247
+ }
248
+
249
+ // Forms
250
+
251
+ .col-form-label {
252
+ font-size: 16px;
253
+
254
+ &-sm {
255
+ font-size: $font-size-sm;
256
+ }
257
+
258
+ &-lg {
259
+ font-size: $font-size-lg;
260
+ }
261
+ }
262
+
263
+ textarea,
264
+ textarea.form-control,
265
+ input.form-control,
266
+ input[type="text"],
267
+ input[type="password"],
268
+ input[type="email"],
269
+ input[type="number"],
270
+ [type="text"].form-control,
271
+ [type="password"].form-control,
272
+ [type="email"].form-control,
273
+ [type="tel"].form-control,
274
+ [contenteditable].form-control {
275
+ box-shadow: inset 0 -1px 0 #ddd;
276
+ transition: box-shadow .2s;
277
+
278
+ &:focus {
279
+ box-shadow: inset 0 -2px 0 $primary;
280
+ }
281
+
282
+ &[disabled],
283
+ &[readonly] {
284
+ border-bottom: 1px dotted #ddd;
285
+ box-shadow: none;
286
+ }
287
+
288
+ &[disabled],
289
+ &[disabled]::placeholder {
290
+ color: #ddd;
291
+ }
292
+ }
293
+
294
+ select,
295
+ select.form-control {
296
+ padding: .5rem 0;
297
+ appearance: none;
298
+ background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 4'><path fill='#{$gray-600}' d='M8 0 4 4 0 0z'/></svg>"));
299
+ background-repeat: no-repeat;
300
+ background-position: right center;
301
+ background-size: 8px 4px;
302
+ box-shadow: inset 0 -1px 0 #ddd;
303
+
304
+ &.input {
305
+ &-sm {
306
+ font-size: $font-size-sm;
307
+ }
308
+
309
+ &-lg {
310
+ font-size: $font-size-lg;
311
+ }
312
+ }
313
+
314
+ &:focus {
315
+ background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 4'><path fill='#{$gray-900}' d='M8 0 4 4 0 0z'/></svg>"));
316
+ box-shadow: inset 0 -2px 0 $primary;
317
+ }
318
+
319
+ &[multiple] {
320
+ background: none;
321
+ }
322
+ }
323
+
324
+ .form-check-input {
325
+ width: 1.25em;
326
+ height: 1.25em;
327
+ margin-top: 1px;
328
+ border: 2px solid $gray-400;
329
+
330
+ :not(.form-check) > &:checked[type="radio"] {
331
+ background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$blue}' stroke='#{$white}'/></svg>")), var(--bs-gradient);
332
+ background-size: 1.8em;
333
+ }
334
+ }
335
+
336
+ .form-switch {
337
+ .form-check-input {
338
+ position: relative;
339
+ height: .8em;
340
+ margin-top: .29em;
341
+ background-color: $gray-400;
342
+ background-image: none;
343
+ border: none;
344
+
345
+ &:focus {
346
+ box-shadow: none;
347
+ }
348
+
349
+ &::before {
350
+ position: absolute;
351
+ top: -.2em;
352
+ left: -.2em;
353
+ width: 1.2em;
354
+ height: 1.2em;
355
+ content: "";
356
+ background-color: $white;
357
+ border-radius: 50%;
358
+ box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
359
+ transition: left .15s ease-in-out;
360
+ }
361
+
362
+ &::after {
363
+ position: absolute;
364
+ top: -.2em;
365
+ left: -.2em;
366
+ z-index: -1;
367
+ width: 1.2em;
368
+ height: 1.2em;
369
+ content: "";
370
+ border-radius: 50%;
371
+ box-shadow: 0 0 0 9px rgba(0, 0, 0, .05);
372
+ transition: left .15s ease-in-out, transform .15s ease-in-out, box-shadow .15s ease-in-out;
373
+ transform: scale(0);
374
+ }
375
+
376
+ &:hover:not(.disabled),
377
+ &:focus:not(.disabled) {
378
+
379
+ &::after {
380
+ transform: scale(.9);
381
+ }
382
+ }
383
+
384
+ &:focus:not(.disabled) {
385
+ &::after {
386
+ box-shadow: 0 0 0 9px rgba(0, 0, 0, .1);
387
+ }
388
+ }
389
+
390
+ &:checked {
391
+ background-color: rgba(33, 150, 243, .3);
392
+
393
+ &::before {
394
+ left: calc(100% - .8em);
395
+ background-color: rgba(33, 150, 243, 1);
396
+ }
397
+
398
+ &::after {
399
+ left: calc(100% - .8em);
400
+ box-shadow: 0 0 0 9px rgba(33, 150, 243, .1);
401
+ }
402
+
403
+ &:hover:not(.disabled),
404
+ &:focus:not(.disabled) {
405
+ &::after {
406
+ transform: scale(.9);
407
+ }
408
+ }
409
+
410
+ &:focus:not(.disabled) {
411
+ &::after {
412
+ box-shadow: 0 0 0 9px rgba(33, 150, 243, .2);
413
+ }
414
+ }
415
+ }
416
+ }
417
+ }
418
+
419
+ .form-check:not(.form-switch) {
420
+ .form-check-input {
421
+ &:checked[type="checkbox"] {
422
+ background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$white}' stroke-width='2' d='m6 10 3 3 6-6'/></svg>")), var(--bs-gradient);
423
+ background-size: 1.6em;
424
+ }
425
+ }
426
+ }
427
+
428
+ .has-warning {
429
+ input:not([type="checkbox"]),
430
+ .form-control,
431
+ input.form-control[readonly],
432
+ input[type="text"][readonly],
433
+ [type="text"].form-control[readonly],
434
+ input:not([type="checkbox"]):focus,
435
+ .form-control:focus {
436
+ border-bottom: none;
437
+ box-shadow: inset 0 -2px 0 $warning;
438
+ }
439
+ }
440
+
441
+ .has-danger {
442
+ input:not([type="checkbox"]),
443
+ .form-control,
444
+ input.form-control[readonly],
445
+ input[type="text"][readonly],
446
+ [type="text"].form-control[readonly],
447
+ input:not([type="checkbox"]):focus,
448
+ .form-control:focus {
449
+ border-bottom: none;
450
+ box-shadow: inset 0 -2px 0 $danger;
451
+ }
452
+ }
453
+
454
+ .has-success {
455
+ input:not([type="checkbox"]),
456
+ .form-control,
457
+ input.form-control[readonly],
458
+ input[type="text"][readonly],
459
+ [type="text"].form-control[readonly],
460
+ input:not([type="checkbox"]):focus,
461
+ .form-control:focus {
462
+ border-bottom: none;
463
+ box-shadow: inset 0 -2px 0 $success;
464
+ }
465
+ }
466
+
467
+ // Remove the Bootstrap feedback styles for input addons
468
+ .input-group-addon {
469
+ .has-warning &,
470
+ .has-danger &,
471
+ .has-success & {
472
+ color: $input-color;
473
+ background-color: $input-group-addon-bg;
474
+ border-color: $input-group-addon-border-color;
475
+ }
476
+ }
477
+
478
+ .form-group-lg {
479
+ select,
480
+ select.form-control {
481
+ line-height: 1.5;
482
+ }
483
+ }
484
+
485
+ // Navs
486
+
487
+ .nav-tabs {
488
+ .nav-item + .nav-item {
489
+ margin-left: 0;
490
+ }
491
+
492
+ .nav-link,
493
+ .nav-link:focus {
494
+ margin-right: 0;
495
+ color: $body-color;
496
+ background-color: transparent;
497
+ border: none;
498
+ box-shadow: inset 0 -1px 0 #ddd;
499
+ transition: color .2s, box-shadow .2s;
500
+
501
+ &:hover {
502
+ color: $primary;
503
+ background-color: transparent;
504
+ box-shadow: inset 0 -2px 0 $primary;
505
+ }
506
+ }
507
+
508
+ .nav-link.active,
509
+ .nav-link.active:focus {
510
+ color: $primary;
511
+ border: none;
512
+ box-shadow: inset 0 -2px 0 $primary;
513
+
514
+ &:hover {
515
+ color: $primary;
516
+ border: none;
517
+ }
518
+ }
519
+
520
+ .nav-link.disabled {
521
+ box-shadow: inset 0 -1px 0 #ddd;
522
+ }
523
+
524
+ &.nav-justified {
525
+ .nav-link,
526
+ .nav-link:hover,
527
+ .nav-link:focus,
528
+ .nav-link.active,
529
+ .nav-link.active:hover,
530
+ .nav-link.active:focus {
531
+ border: none;
532
+ }
533
+ }
534
+
535
+ .dropdown-menu {
536
+ margin-top: 0;
537
+ }
538
+ }
539
+
540
+ .dropdown-menu {
541
+ margin-top: 0;
542
+ border: none;
543
+ box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
544
+ }
545
+
546
+ // Indicators
547
+
548
+ .alert {
549
+ padding-right: 2.5rem;
550
+ border: none;
551
+
552
+ &,
553
+ h1,
554
+ h2,
555
+ h3,
556
+ h4,
557
+ h5,
558
+ h6 {
559
+ color: $white;
560
+ }
561
+
562
+ @each $color, $value in $theme-colors {
563
+ &-#{$color} {
564
+ @if $enable-gradients {
565
+ background: $value linear-gradient(180deg, mix($body-bg, $value, 15%), $value) repeat-x;
566
+ } @else {
567
+ background-color: $value;
568
+ }
569
+ }
570
+ }
571
+
572
+ a:not(.btn),
573
+ .alert-link {
574
+ font-weight: 700;
575
+ color: $white;
576
+ }
577
+
578
+ &-secondary,
579
+ &-light {
580
+ &,
581
+ a:not(.btn),
582
+ .alert-link {
583
+ color: $body-color;
584
+ }
585
+ }
586
+ }
587
+
588
+ .badge {
589
+ &.bg-secondary,
590
+ &.bg-light {
591
+ color: $dark;
592
+ }
593
+ }
594
+
595
+ // Containers
596
+
597
+ .card {
598
+ box-shadow: 0 1px 4px rgba(0, 0, 0, .4);
599
+
600
+ &.border-primary,
601
+ &.border-secondary,
602
+ &.border-success,
603
+ &.border-info,
604
+ &.border-warning,
605
+ &.border-danger,
606
+ &.border-light,
607
+ &.border-dark {
608
+ border-width: 1px;
609
+ }
610
+ }
611
+
612
+ .list-group {
613
+ &-item-action.active {
614
+ h1,
615
+ h2,
616
+ h3,
617
+ h4,
618
+ h5,
619
+ h6 {
620
+ color: $white;
621
+ }
622
+ }
623
+ }
624
+
625
+ .modal-content {
626
+ border-radius: .2rem;
627
+ box-shadow: 0 6px 36px rgba(0, 0, 0, .3);
628
+ }
629
+
630
+ .modal,
631
+ .toast,
632
+ .offcanvas {
633
+ .btn-close {
634
+ background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$black}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"));
635
+ }
636
+ }
637
+
638
+ .popover {
639
+ border: none;
640
+ box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
641
+ }
642
+
643
+ .carousel {
644
+ &-caption {
645
+ h1,
646
+ h2,
647
+ h3,
648
+ h4,
649
+ h5,
650
+ h6 {
651
+ color: inherit;
652
+ }
653
+ }
654
+ }