_config.scss 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544
  1. $font-family-base: 'Inter Var', system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto ColorEmoji;
  2. $font-family-monospace: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
  3. $font-families: (
  4. base: $font-family-base,
  5. monospace: $font-family-monospace
  6. );
  7. $font-size-base: 1rem;
  8. $line-height-base: 1.75;
  9. $line-height-sm: px2rem(20px);
  10. $color-dark: #1d2434;
  11. $color-text: #3b454e;
  12. $color-headers: #232b42;
  13. $color-white: #ffffff;
  14. $color-gray-dark: #eaecee;
  15. $color-gray: #f7f9fb;
  16. $color-gray-light: #fafbfc;
  17. $color-primary: #0054a6;
  18. $color-red: #e03131;
  19. $color-pink: #c2255c;
  20. $color-grape: #9c36b5;
  21. $color-violet: #6741d9;
  22. $color-indigo: #3b5bdb;
  23. $color-blue: #1971c2;
  24. $color-cyan: #0c8599;
  25. $color-teal: #099268;
  26. $color-green: #2f9e44;
  27. $color-lime: #66a80f;
  28. $color-yellow: #f08c00;
  29. $color-orange: #e8590c;
  30. $colors: (
  31. 'primary': $color-primary,
  32. 'red': $color-red,
  33. 'pink': $color-pink,
  34. 'grape': $color-grape,
  35. 'violet': $color-violet,
  36. 'indigo': $color-indigo,
  37. 'blue': $color-blue,
  38. 'cyan': $color-cyan,
  39. 'teal': $color-teal,
  40. 'green': $color-green,
  41. 'lime': $color-lime,
  42. 'yellow': $color-yellow,
  43. 'orange': $color-orange,
  44. 'white': $color-white,
  45. 'dark': $color-dark
  46. );
  47. $extra-colors: (
  48. 'gray-dark': $color-dark,
  49. 'gray': $color-gray,
  50. 'gray-light': $color-gray-light,
  51. 'twitter': #1da1f2,
  52. 'facebook': #1877f2,
  53. 'github': #181717,
  54. 'dribbble': #ea4c89
  55. );
  56. $backgrounds: (
  57. gray: var(--color-gray),
  58. gray-light: var(--color-gray-light),
  59. base: var(--bg-primary),
  60. surface: var(--bg-primary),
  61. );
  62. $color-background: $color-white;
  63. $color-muted: #515671;
  64. $color-muted-light: lighten($color-muted, 10%);
  65. $color-muted-dark: darken($color-muted, 10%);
  66. $color-border: #dbdef0;
  67. $color-border-light: lighten($color-border, 4%);
  68. $color-border-hover: darken($color-border, 15%);
  69. $color-highlight-bg: $color-dark;
  70. $color-highlight-red: #ff8383;
  71. $color-highlight-yellow: #ffe484;
  72. $color-highlight-green: #b5f4a5;
  73. $color-highlight-blue: #93ddfd;
  74. $color-highlight-purple: #d9a9ff;
  75. $font-weight-normal: 400;
  76. $font-weight-medium: 500;
  77. $font-weight-bold: 600;
  78. $font-weight-black: 700;
  79. $font-weight-light: 300;
  80. $tracking-tight: -.02em;
  81. $tracking-wide: .04em;
  82. $border-radius: .25rem;
  83. $border-radius-lg: .375rem;
  84. $border-radius-xl: .5rem;
  85. $font-size-h0: px2rem(48px);
  86. $font-size-h1: px2rem(32px);
  87. $font-size-h2: px2rem(24px);
  88. $font-size-h3: px2rem(20px);
  89. $font-size-h4: px2rem(18px);
  90. $font-size-h5: $font-size-base;
  91. $font-size-h6: px2rem(14px);
  92. $font-size-h7: px2rem(12px);
  93. $line-height-h0: 3.25rem;
  94. $line-height-h1: 2.5rem;
  95. $line-height-h2: 2.25rem;
  96. $line-height-h3: 1.75rem;
  97. $line-height-h4: 1.5rem;
  98. $line-height-h5: 1.25rem;
  99. $line-height-h6: 1rem;
  100. $line-height-h7: 1rem;
  101. $gap-0: 0rem;
  102. $gap-1: .25rem;
  103. $gap-2: .5rem;
  104. $gap-3: 1rem;
  105. $gap-4: 1.5rem;
  106. $gap-5: 2rem;
  107. $gap-6: 4rem;
  108. $gap-7: 6.5rem;
  109. $gap-8: 10.5rem;
  110. $gaps: (
  111. 0: $gap-0,
  112. 1: $gap-1,
  113. 2: $gap-2,
  114. 3: $gap-3,
  115. 4: $gap-4,
  116. 5: $gap-5,
  117. 6: $gap-6,
  118. 7: $gap-7,
  119. 8: $gap-8,
  120. );
  121. $negative-gaps: (
  122. n0: -$gap-0,
  123. n1: -$gap-1,
  124. n2: -$gap-2,
  125. n3: -$gap-3,
  126. n4: -$gap-4,
  127. n5: -$gap-5,
  128. n6: -$gap-6,
  129. n7: -$gap-7,
  130. n8: -$gap-8,
  131. );
  132. $breakpoint-sm: 560px;
  133. $breakpoint-md: 768px;
  134. $breakpoint-lg: 960px;
  135. $breakpoint-xl: 1280px;
  136. $grid-breakpoints: (
  137. 0: 0,
  138. 'sm': $breakpoint-sm,
  139. 'md': $breakpoint-md,
  140. 'lg': $breakpoint-lg,
  141. 'xl': $breakpoint-xl,
  142. );
  143. $container-max-width: px2rem(1280px);
  144. $container-narrow-max-width: px2rem(990px);
  145. $zindex-modal: 100;
  146. $zindex-gototop: 90;
  147. $zindex-header: 80;
  148. $grid-padding: $gap-4;
  149. $grid-columns: 12;
  150. $header-height: 5rem;
  151. $aside-width: 20rem;
  152. $form-focus-color: $color-primary;
  153. $form-check-size: 1rem;
  154. $form-btn-height: 2.5rem;
  155. $shadow-popover: 0 4px 56px rgb(12, 12, 12, 20%), 0 0 0 1px rgb(0, 0, 0, 5%);
  156. $shadow-card-sm: 0 1px 2px 0 rgb(0, 0, 0, .05);
  157. $shadow-card: 0 0 0 1px $color-border, 0 1px 5px rgba(12, 12, 12, 0.05), 0 0 40px rgba(12, 12, 12, 0.015);
  158. $shadow-card-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.06), 0 10px 10px -5px rgba(0, 0, 0, .04);
  159. $transition-duration-short: .2s;
  160. $transition-duration: .5s;
  161. $border-radius-values: (
  162. null: $border-radius,
  163. lg: $border-radius-lg,
  164. 0: 0
  165. );
  166. $css-variables: (
  167. font-family: $font-families,
  168. color: map-merge($colors, $extra-colors),
  169. bg: $backgrounds,
  170. );
  171. $margin-gaps: map-merge($gaps, $negative-gaps);
  172. $utilities: (
  173. "display": (
  174. responsive: true,
  175. print: true,
  176. property: display,
  177. class: d,
  178. values: none inline inline-block block flex table-cell
  179. ),
  180. "overflow": (
  181. class: o,
  182. property: overflow,
  183. values: hidden auto
  184. ),
  185. "color": (
  186. property: color,
  187. class: text,
  188. values: map-merge($colors, (
  189. muted: var(--color-muted, #{$color-muted}),
  190. headers: var(--color-headers, #{$color-headers}),
  191. reset: inherit
  192. ))
  193. ),
  194. "shadow": (
  195. property: box-shadow,
  196. class: shadow,
  197. values: (
  198. sm: $shadow-card-sm,
  199. null: $shadow-card,
  200. card: $shadow-card,
  201. lg: $shadow-card-lg,
  202. )
  203. ),
  204. "border-radius": (
  205. property: border-radius,
  206. class: rounded,
  207. values: $border-radius-values
  208. ),
  209. "border-radius-left": (
  210. property: border-top-left-radius border-bottom-left-radius,
  211. class: rounded-left,
  212. values: $border-radius-values
  213. ),
  214. "border-radius-right": (
  215. property: border-top-right-radius border-bottom-right-radius,
  216. class: rounded-right,
  217. values: $border-radius-values
  218. ),
  219. "background": (
  220. property: background,
  221. class: bg,
  222. values: map-merge($colors, (
  223. white: $color-white,
  224. light: $color-gray
  225. ))
  226. ),
  227. "text-transform": (
  228. property: text-transform,
  229. class: text,
  230. values: uppercase
  231. ),
  232. "text-align": (
  233. responsive: true,
  234. property: text-align,
  235. class: text,
  236. values: left center right
  237. ),
  238. "font-weight": (
  239. property: font-weight,
  240. class: font,
  241. values: (
  242. light: $font-weight-light,
  243. normal: $font-weight-normal,
  244. medium: $font-weight-medium,
  245. bold: $font-weight-bold,
  246. black: $font-weight-black
  247. )
  248. ),
  249. "font-family": (
  250. property: font-family,
  251. class: font,
  252. values: (
  253. monospaced: $font-family-monospace
  254. ),
  255. ),
  256. "text-decoration": (
  257. property: text-decoration,
  258. class: text,
  259. values: underline
  260. ),
  261. "line-height": (
  262. property: line-height,
  263. class: lh,
  264. values: (
  265. 1: 1,
  266. sm: $line-height-sm,
  267. base: $line-height-base,
  268. h1: $line-height-h1,
  269. h2: $line-height-h2,
  270. h3: $line-height-h3,
  271. h4: $line-height-h4,
  272. h5: $line-height-h5,
  273. h6: $line-height-h6,
  274. )
  275. ),
  276. "font-size": (
  277. property: font-size,
  278. class: font,
  279. values: (
  280. h1: $font-size-h1,
  281. h2: $font-size-h2,
  282. h3: $font-size-h3,
  283. h4: $font-size-h4,
  284. h5: $font-size-h5,
  285. h6: $font-size-h6,
  286. )
  287. ),
  288. "position": (
  289. property: position,
  290. class: p,
  291. values: (sticky, relative, absolute)
  292. ),
  293. "flex": (
  294. responsive: true,
  295. property: flex,
  296. values: (fill: 1 1 auto)
  297. ),
  298. "flex-direction": (
  299. responsive: true,
  300. property: flex-direction,
  301. class: flex,
  302. values: row column row-reverse
  303. ),
  304. "justify-content": (
  305. responsive: true,
  306. property: justify-content,
  307. class: justify,
  308. values: (
  309. start: flex-start,
  310. end: flex-end,
  311. center: center,
  312. between: space-between,
  313. //around: space-around,
  314. //evenly: space-evenly,
  315. )
  316. ),
  317. "align-items": (
  318. responsive: true,
  319. property: align-items,
  320. class: items,
  321. values: (
  322. start: flex-start,
  323. //end: flex-end,
  324. center: center,
  325. //baseline: baseline,
  326. //stretch: stretch,
  327. )
  328. ),
  329. "order": (
  330. responsive: true,
  331. property: order,
  332. values: (
  333. first: -1,
  334. //0: 0,
  335. //1: 1,
  336. //2: 2,
  337. //3: 3,
  338. //4: 4,
  339. //5: 5,
  340. last: 6,
  341. ),
  342. ),
  343. "margin": (
  344. responsive: true,
  345. property: margin,
  346. class: m,
  347. values: map-merge($margin-gaps, (auto: auto))
  348. ),
  349. "margin-x": (
  350. responsive: true,
  351. property: margin-right margin-left,
  352. class: mx,
  353. values: map-merge($margin-gaps, (auto: auto))
  354. ),
  355. "margin-y": (
  356. responsive: true,
  357. property: margin-top margin-bottom,
  358. class: my,
  359. values: map-merge($margin-gaps, (auto: auto))
  360. ),
  361. "margin-top": (
  362. responsive: true,
  363. property: margin-top,
  364. class: mt,
  365. values: map-merge($margin-gaps, (auto: auto))
  366. ),
  367. "margin-right": (
  368. responsive: true,
  369. property: margin-right,
  370. class: mr,
  371. values: map-merge($margin-gaps, (auto: auto))
  372. ),
  373. "margin-bottom": (
  374. responsive: true,
  375. property: margin-bottom,
  376. class: mb,
  377. values: map-merge($margin-gaps, (auto: auto))
  378. ),
  379. "margin-left": (
  380. responsive: true,
  381. property: margin-left,
  382. class: ml,
  383. values: map-merge($margin-gaps, (auto: auto))
  384. ),
  385. "padding": (
  386. responsive: true,
  387. property: padding,
  388. class: p,
  389. values: $gaps
  390. ),
  391. "padding-x": (
  392. responsive: true,
  393. property: padding-right padding-left,
  394. class: px,
  395. values: $gaps
  396. ),
  397. "padding-y": (
  398. responsive: true,
  399. property: padding-top padding-bottom,
  400. class: py,
  401. values: $gaps
  402. ),
  403. "padding-top": (
  404. responsive: true,
  405. property: padding-top,
  406. class: pt,
  407. values: $gaps
  408. ),
  409. "padding-right": (
  410. responsive: true,
  411. property: padding-right,
  412. class: pr,
  413. values: $gaps
  414. ),
  415. "padding-bottom": (
  416. responsive: true,
  417. property: padding-bottom,
  418. class: pb,
  419. values: $gaps
  420. ),
  421. "padding-left": (
  422. responsive: true,
  423. property: padding-left,
  424. class: pl,
  425. values: $gaps
  426. ),
  427. "border": (
  428. property: border,
  429. values: (
  430. 0: none,
  431. null: 1px solid $color-border,
  432. light: 1px solid $color-border-light
  433. )
  434. ),
  435. "border-top": (
  436. property: border-top,
  437. values: (
  438. 0: none,
  439. null: 1px solid $color-border,
  440. light: 1px solid $color-border-light
  441. )
  442. ),
  443. "border-right": (
  444. property: border-right,
  445. values: (
  446. 0: none,
  447. null: 1px solid $color-border,
  448. light: 1px solid $color-border-light
  449. )
  450. ),
  451. "border-bottom": (
  452. property: border-bottom,
  453. values: (
  454. 0: none,
  455. null: 1px solid $color-border,
  456. light: 1px solid $color-border-light
  457. )
  458. ),
  459. "border-left": (
  460. property: border-left,
  461. values: (
  462. 0: none,
  463. null: 1px solid $color-border,
  464. light: 1px solid $color-border-light
  465. )
  466. ),
  467. "user-select": (
  468. property: user-select,
  469. class: select,
  470. values: all auto none
  471. ),
  472. "pointer-events": (
  473. property: pointer-events,
  474. values: none
  475. ),
  476. "width": (
  477. property: width,
  478. class: w,
  479. values: (
  480. 1: 1%,
  481. 100: 100%,
  482. auto: auto
  483. )
  484. ),
  485. "height": (
  486. property: height,
  487. class: h,
  488. values: (
  489. 100: 100%,
  490. auto: auto
  491. )
  492. ),
  493. "ratio": (
  494. class: ratio,
  495. property: aspect-ratio,
  496. extra: (
  497. background-size: cover
  498. ),
  499. values: (
  500. '16x9': divide(16, 9),
  501. '9x16': divide(9, 16),
  502. '4x3': divide(4, 3),
  503. '3x4': divide(3, 4),
  504. '2x1': divide(2, 1),
  505. '1x2': divide(1, 2),
  506. '1x1': divide(1, 1),
  507. )
  508. )
  509. );