_config.scss 11 KB

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