core.scss 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. /* =============================================================================
  2. /* Wagtail CMS main stylesheet
  3. /* =============================================================================
  4. REFERENCE
  5. * We organise our styles based on a combination of ITCSS and
  6. the Sass 7-1 pattern.
  7. * Classes should be written using BEM, which we modify to include a prefix.
  8. * Every BEM block should have its own file.
  9. ┌────────────┬────────────────────────┬──────────────┬
  10. │ Folder │ Contents │ ITCSS level │
  11. ├────────────┼────────────────────────┼──────────────┼
  12. │ settings │ variables, maps, fonts │ 1 Settings │
  13. │ tools │ mixins, functions │ 2 Tools │
  14. │ generic │ resets │ 3 Generic │
  15. │ elements │ elements, no classes │ 4 Elements │
  16. │ objects │ Unused │ 5 Objects │
  17. │ components │ classes │ 6 Components │
  18. │ │ BEM blocks │ │
  19. │ overrides │ classes │ 7 Trumps │
  20. │ │ overrides, utilities │ │
  21. └────────────┴────────────────────────┴──────────────┘
  22. SCSS: https://sass-lang.com/guide
  23. ITCSS: https://www.creativebloq.com/web-design/manage-large-css-projects-itcss-101517528
  24. Sass 7-1 pattern: https://gist.github.com/rveitch/84cea9650092119527bc
  25. BEM: https://getbem.com/
  26. ==============================================================================*/
  27. /* Legacy vendor styles. Do not add new styles here. */
  28. @use 'generic/normalize';
  29. @use 'vendor/jquery-ui-1.10.3.verdant';
  30. @use 'vendor/jquery.tagit' as jquery-tagit;
  31. @use 'vendor/jquery.Jcrop.min' as jquery-jcrop;
  32. /* SETTINGS
  33. These are variables, maps, and fonts.
  34. * No CSS should be produced by these files
  35. */
  36. @use 'settings';
  37. /* TOOLS
  38. These are functions and mixins.
  39. * No CSS should be produced by these files.
  40. */
  41. @use 'tools';
  42. /* GENERIC
  43. This is for resets and other rules that affect large collections of bare elements.
  44. * Changes to them should be very rare.
  45. */
  46. /* ELEMENTS
  47. These are base styles for bare HTML elements.
  48. * Changes to them should be very rare.
  49. */
  50. @use 'elements/elements';
  51. @use 'elements/typography';
  52. @use 'elements/forms';
  53. /* COMPONENTS
  54. These are classes for components.
  55. * These classes (unless legacy) are prefixed with `.w-`.
  56. * React component styles live in the same folders as their React components,
  57. which is the preferred pattern over housing them in the scss folder.
  58. */
  59. @use '../src/components/Transition/Transition';
  60. @use '../src/components/LoadingSpinner/LoadingSpinner';
  61. @use '../src/components/PublicationStatus/PublicationStatus';
  62. @use '../src/components/ComboBox/ComboBox';
  63. @use '../src/components/ComboBoxPreview/ComboBoxPreview';
  64. @use '../src/components/PageExplorer/PageExplorer';
  65. @use '../src/components/CommentApp/main';
  66. @use 'components/avatar';
  67. @use 'components/icons';
  68. @use 'components/forms/input-base';
  69. @use 'components/forms/input-text';
  70. @use 'components/forms/radio-checkbox';
  71. @use 'components/forms/select';
  72. @use 'components/forms/tagit';
  73. @use 'components/forms/radio-checkbox-multiple';
  74. @use 'components/forms/error-message';
  75. @use 'components/forms/required-mark';
  76. @use 'components/forms/help';
  77. @use 'components/forms/drop-zone';
  78. @use 'components/forms/daterange';
  79. @use 'components/forms/file';
  80. @use 'components/forms/publishing';
  81. @use 'components/forms/switch';
  82. @use 'components/forms/title';
  83. @use 'components/forms/field';
  84. @use 'components/forms/field-row';
  85. @use 'components/forms/field-comment-control';
  86. @use 'components/forms/field-textoutput';
  87. @use 'components/forms/form-width';
  88. @use 'components/forms/nested-panel';
  89. @use 'components/tabs';
  90. @use 'components/panel';
  91. @use 'components/dialog';
  92. @use 'components/dismissible';
  93. @use 'components/drilldown';
  94. @use 'components/dropdown';
  95. @use 'components/dropdown-button';
  96. @use 'components/help-block';
  97. @use 'components/button';
  98. @use 'components/keyboard-shortcuts';
  99. @use 'components/modals';
  100. @use 'components/chooser';
  101. @use 'components/tag';
  102. @use 'components/listing';
  103. @use 'components/filters';
  104. @use 'components/messages';
  105. @use 'components/messages.capability' as messages-capability;
  106. @use 'components/messages.status' as messages-status;
  107. @use 'components/header';
  108. @use 'components/progressbar';
  109. @use 'components/summary';
  110. @use 'components/whats-new';
  111. @use 'components/grid.legacy';
  112. @use 'components/footer';
  113. @use 'components/loading-mask';
  114. @use 'components/human-readable-date';
  115. @use 'components/link.legacy';
  116. @use 'components/indicator';
  117. @use 'components/status-tag';
  118. @use 'components/skiplink';
  119. @use 'components/workflow-tasks';
  120. @use 'components/workflow-timeline';
  121. @use 'components/bulk_actions';
  122. @use 'components/preview-panel';
  123. @use 'components/preview-error';
  124. @use 'components/form-side';
  125. @use 'components/a11y-result';
  126. @use 'components/userbar';
  127. @use 'components/breadcrumbs';
  128. @use 'components/pill';
  129. @use 'components/ping';
  130. @use 'components/editing-sessions';
  131. @use '../src/components/Sidebar/Sidebar';
  132. @use '../src/components/Sidebar/SidebarPanel';
  133. @use '../src/components/Sidebar/menu/MenuItem';
  134. @use '../src/components/Sidebar/menu/SubMenuItem';
  135. @use '../src/components/Sidebar/modules/MainMenu';
  136. @use '../src/components/Sidebar/modules/WagtailBranding';
  137. @use '../src/components/Minimap/Minimap';
  138. /* OVERRIDES
  139. These are classes that provide overrides.
  140. * Higher specificity is allowed here because these are overrides and imported last.
  141. */
  142. // VENDOR: overrides of vendor styles.
  143. @use 'overrides/vendor.datetimepicker' as vendor-datetimepicker;
  144. @use 'overrides/vendor.handsontable' as vendor-handsontable;
  145. @use 'overrides/vendor.tagit' as vendor-tagit;
  146. @use 'overrides/vendor.tippy' as vendor-tippy;
  147. // UTILITIES: classes that do one simple thing.
  148. @use 'overrides/utilities.focus' as utilities-focus;
  149. // Legacy utilities
  150. @use 'overrides/utilities.legacy' as utilities-legacy;
  151. // TAILWIND: This is at the bottom so it can take precedence over other css classes
  152. @use 'overrides/utilities.tailwind' as utilities-tailwind;
  153. /* Legacy layout-specific styles. Do not add new styles here. */
  154. @use 'layouts/404' as layout-404;
  155. @use 'layouts/compare-revisions';
  156. @use 'layouts/login';
  157. @use 'layouts/account';
  158. @use 'layouts/workflow-progress';
  159. @use 'layouts/report';
  160. @use 'layouts/add-multiple';
  161. @use 'layouts/chooser-duplicate-upload';
  162. @use 'layouts/focal-point-chooser';
  163. @use 'layouts/redirects';