_config.scss 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  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. $container-slim-max-width: px2rem(660px);
  146. $container-tight-max-width: px2rem(500px);
  147. $zindex-modal: 100;
  148. $zindex-gototop: 90;
  149. $zindex-header: 80;
  150. $grid-padding: $gap-4;
  151. $grid-columns: 12;
  152. $header-height: 5rem;
  153. $aside-width: 20rem;
  154. $hr-margin-y: 2rem;
  155. $form-focus-color: $color-primary;
  156. $form-check-size: 1rem;
  157. $form-btn-height: 2.5rem;
  158. $shadow-popover: 0 4px 56px rgb(12, 12, 12, 20%), 0 0 0 1px rgb(0, 0, 0, 5%);
  159. $shadow-card-sm: 0 1px 2px 0 rgb(0, 0, 0, .05);
  160. $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);
  161. $shadow-card-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.06), 0 10px 10px -5px rgba(0, 0, 0, .04);
  162. $transition-duration-short: .2s;
  163. $transition-duration: .5s;
  164. $border-radius-values: (
  165. null: $border-radius,
  166. lg: $border-radius-lg,
  167. 0: 0
  168. );
  169. $css-variables: (
  170. font-family: $font-families,
  171. color: map-merge($colors, $extra-colors),
  172. bg: $backgrounds,
  173. );
  174. $margin-gaps: map-merge($gaps, $negative-gaps);
  175. $utilities: (
  176. "display": (
  177. responsive: true,
  178. print: true,
  179. property: display,
  180. class: d,
  181. values: none inline inline-block block flex table-cell
  182. ),
  183. "overflow": (
  184. class: o,
  185. property: overflow,
  186. values: hidden auto
  187. ),
  188. "color": (
  189. property: color,
  190. class: text,
  191. values: map-merge($colors, (
  192. muted: var(--color-muted, #{$color-muted}),
  193. headers: var(--color-headers, #{$color-headers}),
  194. reset: inherit
  195. ))
  196. ),
  197. "shadow": (
  198. property: box-shadow,
  199. class: shadow,
  200. values: (
  201. sm: $shadow-card-sm,
  202. null: $shadow-card,
  203. card: $shadow-card,
  204. lg: $shadow-card-lg,
  205. )
  206. ),
  207. "border-radius": (
  208. property: border-radius,
  209. class: rounded,
  210. values: $border-radius-values
  211. ),
  212. "border-radius-left": (
  213. property: border-top-left-radius border-bottom-left-radius,
  214. class: rounded-left,
  215. values: $border-radius-values
  216. ),
  217. "border-radius-right": (
  218. property: border-top-right-radius border-bottom-right-radius,
  219. class: rounded-right,
  220. values: $border-radius-values
  221. ),
  222. "background": (
  223. property: background,
  224. class: bg,
  225. values: map-merge($colors, (
  226. white: $color-white,
  227. light: $color-gray
  228. ))
  229. ),
  230. "text-transform": (
  231. property: text-transform,
  232. class: text,
  233. values: uppercase
  234. ),
  235. "text-align": (
  236. responsive: true,
  237. property: text-align,
  238. class: text,
  239. values: left center right
  240. ),
  241. "font-weight": (
  242. property: font-weight,
  243. class: font,
  244. values: (
  245. light: $font-weight-light,
  246. normal: $font-weight-normal,
  247. medium: $font-weight-medium,
  248. bold: $font-weight-bold,
  249. black: $font-weight-black
  250. )
  251. ),
  252. "font-family": (
  253. property: font-family,
  254. class: font,
  255. values: (
  256. monospaced: $font-family-monospace
  257. ),
  258. ),
  259. "text-decoration": (
  260. property: text-decoration,
  261. class: text,
  262. values: underline
  263. ),
  264. "line-height": (
  265. property: line-height,
  266. class: lh,
  267. values: (
  268. 1: 1,
  269. sm: $line-height-sm,
  270. base: $line-height-base,
  271. h1: $line-height-h1,
  272. h2: $line-height-h2,
  273. h3: $line-height-h3,
  274. h4: $line-height-h4,
  275. h5: $line-height-h5,
  276. h6: $line-height-h6,
  277. )
  278. ),
  279. "font-size": (
  280. property: font-size,
  281. class: font,
  282. values: (
  283. h1: $font-size-h1,
  284. h2: $font-size-h2,
  285. h3: $font-size-h3,
  286. h4: $font-size-h4,
  287. h5: $font-size-h5,
  288. h6: $font-size-h6,
  289. )
  290. ),
  291. "position": (
  292. property: position,
  293. class: p,
  294. values: (sticky, relative, absolute)
  295. ),
  296. "flex": (
  297. responsive: true,
  298. property: flex,
  299. values: (fill: 1 1 auto)
  300. ),
  301. "flex-direction": (
  302. responsive: true,
  303. property: flex-direction,
  304. class: flex,
  305. values: row column row-reverse
  306. ),
  307. "justify-content": (
  308. responsive: true,
  309. property: justify-content,
  310. class: justify,
  311. values: (
  312. start: flex-start,
  313. end: flex-end,
  314. center: center,
  315. between: space-between,
  316. //around: space-around,
  317. //evenly: space-evenly,
  318. )
  319. ),
  320. "align-items": (
  321. responsive: true,
  322. property: align-items,
  323. class: items,
  324. values: (
  325. start: flex-start,
  326. //end: flex-end,
  327. center: center,
  328. //baseline: baseline,
  329. //stretch: stretch,
  330. )
  331. ),
  332. "order": (
  333. responsive: true,
  334. property: order,
  335. values: (
  336. first: -1,
  337. //0: 0,
  338. //1: 1,
  339. //2: 2,
  340. //3: 3,
  341. //4: 4,
  342. //5: 5,
  343. last: 6,
  344. ),
  345. ),
  346. "margin": (
  347. responsive: true,
  348. property: margin,
  349. class: m,
  350. values: map-merge($margin-gaps, (auto: auto))
  351. ),
  352. "margin-x": (
  353. responsive: true,
  354. property: margin-right margin-left,
  355. class: mx,
  356. values: map-merge($margin-gaps, (auto: auto))
  357. ),
  358. "margin-y": (
  359. responsive: true,
  360. property: margin-top margin-bottom,
  361. class: my,
  362. values: map-merge($margin-gaps, (auto: auto))
  363. ),
  364. "margin-top": (
  365. responsive: true,
  366. property: margin-top,
  367. class: mt,
  368. values: map-merge($margin-gaps, (auto: auto))
  369. ),
  370. "margin-right": (
  371. responsive: true,
  372. property: margin-right,
  373. class: mr,
  374. values: map-merge($margin-gaps, (auto: auto))
  375. ),
  376. "margin-bottom": (
  377. responsive: true,
  378. property: margin-bottom,
  379. class: mb,
  380. values: map-merge($margin-gaps, (auto: auto))
  381. ),
  382. "margin-left": (
  383. responsive: true,
  384. property: margin-left,
  385. class: ml,
  386. values: map-merge($margin-gaps, (auto: auto))
  387. ),
  388. "padding": (
  389. responsive: true,
  390. property: padding,
  391. class: p,
  392. values: $gaps
  393. ),
  394. "padding-x": (
  395. responsive: true,
  396. property: padding-right padding-left,
  397. class: px,
  398. values: $gaps
  399. ),
  400. "padding-y": (
  401. responsive: true,
  402. property: padding-top padding-bottom,
  403. class: py,
  404. values: $gaps
  405. ),
  406. "padding-top": (
  407. responsive: true,
  408. property: padding-top,
  409. class: pt,
  410. values: $gaps
  411. ),
  412. "padding-right": (
  413. responsive: true,
  414. property: padding-right,
  415. class: pr,
  416. values: $gaps
  417. ),
  418. "padding-bottom": (
  419. responsive: true,
  420. property: padding-bottom,
  421. class: pb,
  422. values: $gaps
  423. ),
  424. "padding-left": (
  425. responsive: true,
  426. property: padding-left,
  427. class: pl,
  428. values: $gaps
  429. ),
  430. "border": (
  431. property: border,
  432. values: (
  433. 0: none,
  434. null: 1px solid $color-border,
  435. light: 1px solid $color-border-light
  436. )
  437. ),
  438. "outline": (
  439. property: outline,
  440. values: (
  441. 0: none,
  442. null: 1px solid $color-border,
  443. light: 1px solid $color-border-light
  444. )
  445. ),
  446. "border-top": (
  447. property: border-top,
  448. values: (
  449. 0: none,
  450. null: 1px solid $color-border,
  451. light: 1px solid $color-border-light
  452. )
  453. ),
  454. "border-right": (
  455. property: border-right,
  456. values: (
  457. 0: none,
  458. null: 1px solid $color-border,
  459. light: 1px solid $color-border-light
  460. )
  461. ),
  462. "border-bottom": (
  463. property: border-bottom,
  464. values: (
  465. 0: none,
  466. null: 1px solid $color-border,
  467. light: 1px solid $color-border-light
  468. )
  469. ),
  470. "border-left": (
  471. property: border-left,
  472. values: (
  473. 0: none,
  474. null: 1px solid $color-border,
  475. light: 1px solid $color-border-light
  476. )
  477. ),
  478. "user-select": (
  479. property: user-select,
  480. class: select,
  481. values: all auto none
  482. ),
  483. "pointer-events": (
  484. property: pointer-events,
  485. values: none
  486. ),
  487. "width": (
  488. property: width,
  489. class: w,
  490. values: (
  491. 1: 1%,
  492. 100: 100%,
  493. auto: auto
  494. )
  495. ),
  496. "height": (
  497. property: height,
  498. class: h,
  499. values: (
  500. 100: 100%,
  501. auto: auto
  502. )
  503. ),
  504. "ratio": (
  505. class: ratio,
  506. property: aspect-ratio,
  507. extra: (
  508. background-size: cover
  509. ),
  510. values: (
  511. '16x9': divide(16, 9),
  512. '9x16': divide(9, 16),
  513. '4x3': divide(4, 3),
  514. '3x4': divide(3, 4),
  515. '2x1': divide(2, 1),
  516. '1x2': divide(1, 2),
  517. '1x1': divide(1, 1),
  518. )
  519. )
  520. );