django.css 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. /*
  2. * Django brand palette, ported from the old Jekyll theme at
  3. * _sass/color_schemes/django.scss
  4. */
  5. /*
  6. * The light palette sits on :root, not on [data-md-color-scheme="default"].
  7. * The theme only puts that attribute on <html> once its JavaScript runs, so a
  8. * scheme-scoped rule leaves the header indigo on the first paint.
  9. */
  10. :root {
  11. --django-green-dark: #0c4b33;
  12. --django-green-mid: #20aa76;
  13. --django-green-light: #44b78b;
  14. --django-green-pale: #e8f5f0;
  15. --django-cream: #f9f7f3;
  16. --md-primary-fg-color: var(--django-green-dark);
  17. --md-primary-fg-color--light: var(--django-green-mid);
  18. --md-primary-fg-color--dark: #072e1f;
  19. --md-primary-bg-color: #ffffff;
  20. --md-primary-bg-color--light: rgba(255, 255, 255, 0.7);
  21. --md-accent-fg-color: var(--django-green-mid);
  22. --md-accent-fg-color--transparent: rgba(32, 170, 118, 0.1);
  23. --md-typeset-a-color: var(--django-green-dark);
  24. --md-code-bg-color: var(--django-cream);
  25. }
  26. /* Dark scheme */
  27. [data-md-color-scheme="slate"] {
  28. --md-primary-fg-color: var(--django-green-dark);
  29. --md-primary-fg-color--light: var(--django-green-light);
  30. --md-primary-fg-color--dark: #051f15;
  31. --md-primary-bg-color: #ffffff;
  32. --md-accent-fg-color: var(--django-green-light);
  33. --md-accent-fg-color--transparent: rgba(68, 183, 139, 0.1);
  34. --md-typeset-a-color: var(--django-green-light);
  35. }
  36. /* Headings use the dark Django green, as they did in the Jekyll theme. */
  37. .md-typeset h1,
  38. .md-typeset h2,
  39. .md-typeset h3,
  40. .md-typeset h4 {
  41. color: var(--django-green-dark);
  42. }
  43. /* Dark green is unreadable on the dark background, so lighten it. */
  44. [data-md-color-scheme="slate"] .md-typeset h1,
  45. [data-md-color-scheme="slate"] .md-typeset h2,
  46. [data-md-color-scheme="slate"] .md-typeset h3,
  47. [data-md-color-scheme="slate"] .md-typeset h4 {
  48. color: var(--django-green-light);
  49. }
  50. /* The Django logo is a wide SVG. Keep it from overflowing on small screens. */
  51. .md-typeset picture img {
  52. max-width: min(160px, 100%);
  53. height: auto;
  54. }
  55. /* The list is long and mostly one-line entries. Tighten the leading so more
  56. of each category fits on screen. */
  57. .md-typeset ul li {
  58. margin-bottom: 0.2rem;
  59. }
  60. /* Footer additions. These sit inside .md-footer, which has a dark background,
  61. so the text needs the footer foreground colors. */
  62. .awesome-django-footer {
  63. padding: 1.2rem 0.8rem;
  64. color: var(--md-footer-fg-color--light);
  65. font-size: 0.7rem;
  66. line-height: 1.5;
  67. text-align: center;
  68. }
  69. .awesome-django-footer__title {
  70. margin: 0 0 0.3rem;
  71. color: var(--md-footer-fg-color);
  72. font-size: 1rem;
  73. font-weight: 700;
  74. line-height: 1.3;
  75. }
  76. .awesome-django-footer__lede {
  77. font-size: 0.72rem;
  78. }
  79. .awesome-django-footer a {
  80. color: var(--md-footer-fg-color);
  81. text-decoration: underline;
  82. }
  83. .awesome-django-footer a:hover {
  84. color: var(--md-accent-fg-color);
  85. }
  86. /* Capped to match the webring below it, so neither spans the whole footer. */
  87. .awesome-django-newsletter {
  88. margin: 0.9rem auto 0;
  89. max-width: 34rem;
  90. }
  91. .awesome-django-newsletter iframe {
  92. width: 100%;
  93. height: 220px;
  94. border: 1px solid #ccc;
  95. }
  96. /* auto, not 0, for the horizontal margins. This rule outranks the single-class
  97. rules below it, so a 0 here would stop them centering themselves. Every
  98. paragraph shares the 34rem column with the signup form and the webring. */
  99. .awesome-django-footer p {
  100. margin: 0.6rem auto;
  101. max-width: 34rem;
  102. }
  103. /*
  104. * The webring is a custom element with a shadow root. Its :host rule sets
  105. * display: block, so it grows to the full width of the footer. Outer document
  106. * rules beat :host rules, so constrain it here and keep it centered.
  107. */
  108. .awesome-django-webring {
  109. margin: 1rem auto;
  110. max-width: 34rem;
  111. }
  112. .awesome-django-webring webring-css {
  113. display: block;
  114. margin: 0 auto;
  115. max-width: 100%;
  116. }
  117. /* Directory controls enhance the website; the README keeps its full TOC. */
  118. .awesome-django-spacer,
  119. .awesome-django-group[hidden],
  120. .awesome-django-category[hidden],
  121. #directory-results [hidden],
  122. .awesome-django-nav-group > nav[hidden] {
  123. display: none !important;
  124. }
  125. .awesome-django-controls {
  126. display: grid;
  127. grid-template-columns: 3fr 2fr;
  128. gap: 0.5rem 1rem;
  129. padding: 0.8rem;
  130. margin: 1rem 0;
  131. border: 1px solid var(--md-default-fg-color--lighter);
  132. border-radius: 0.3rem;
  133. background: var(--md-default-bg-color);
  134. }
  135. .awesome-django-controls label {
  136. display: block;
  137. margin-bottom: 0.3rem;
  138. font-size: 0.7rem;
  139. font-weight: 700;
  140. }
  141. .awesome-django-filter,
  142. .awesome-django-jump {
  143. min-width: 0;
  144. }
  145. .awesome-django-filter__input {
  146. display: flex;
  147. gap: 0.4rem;
  148. }
  149. .awesome-django-controls input,
  150. .awesome-django-controls select,
  151. .awesome-django-controls button {
  152. min-height: 2.2rem;
  153. border: 1px solid var(--md-default-fg-color--light);
  154. border-radius: 0.2rem;
  155. padding: 0.4rem;
  156. font: inherit;
  157. font-size: 0.8rem;
  158. color: var(--md-default-fg-color);
  159. background: var(--md-default-bg-color);
  160. }
  161. .awesome-django-controls input,
  162. .awesome-django-controls select {
  163. width: 100%;
  164. min-width: 0;
  165. }
  166. .awesome-django-controls button,
  167. .awesome-django-nav-toggle {
  168. cursor: pointer;
  169. }
  170. .awesome-django-controls :focus-visible,
  171. .awesome-django-nav-toggle:focus-visible {
  172. outline: 2px solid var(--md-typeset-a-color);
  173. outline-offset: 2px;
  174. }
  175. .md-typeset .awesome-django-result-count {
  176. grid-column: 1 / -1;
  177. margin: 0;
  178. font-size: 0.7rem;
  179. }
  180. .awesome-django-nav-count {
  181. margin-left: auto;
  182. padding-left: 0.4rem;
  183. font-size: 0.6rem;
  184. font-variant-numeric: tabular-nums;
  185. color: var(--md-default-fg-color--light);
  186. }
  187. .awesome-django-nav-group {
  188. position: relative;
  189. }
  190. .awesome-django-nav-group > a {
  191. padding-right: 1.6rem;
  192. }
  193. .awesome-django-nav-toggle {
  194. position: absolute;
  195. top: 0;
  196. right: 0;
  197. width: 1.6rem;
  198. height: 1.6rem;
  199. color: var(--md-default-fg-color);
  200. }
  201. .awesome-django-nav-toggle[aria-expanded="false"] {
  202. transform: rotate(-90deg);
  203. }
  204. #directory-results h2,
  205. #directory-results h3 {
  206. scroll-margin-top: 7rem;
  207. }
  208. @media (max-width: 76.234375em) {
  209. .awesome-django-controls {
  210. position: sticky;
  211. top: 2.8rem;
  212. z-index: 2;
  213. grid-template-columns: 1fr;
  214. }
  215. #directory-results h2,
  216. #directory-results h3 {
  217. scroll-margin-top: calc(var(--directory-controls-height, 14rem) + 4rem);
  218. }
  219. }