app.css 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. @tailwind base;
  2. @tailwind components;
  3. @tailwind utilities;
  4. /* SEC_REVIEW F62: dropping `style-src 'unsafe-inline'` from CSP means
  5. no inline `style="…"` attributes. Two patterns the templates need:
  6. 1. Alpine's pre-init hide pattern. The previously-`style="display:none;"`
  7. element gets `x-cloak` and we set the rule here so the stylesheet
  8. hides it before Alpine boots (and `x-cloak` is removed by Alpine
  9. after `init()`).
  10. 2. Data-driven score-bar width. Templates render
  11. `data-score-width="N"` where `N` is the percent rounded to 5; this
  12. stylesheet provides one rule per bucket. 5% buckets are visually
  13. indistinguishable from per-pixel widths on the small bar UIs the
  14. templates use. */
  15. [x-cloak] { display: none !important; }
  16. [data-score-width="0"] { width: 0%; }
  17. [data-score-width="5"] { width: 5%; }
  18. [data-score-width="10"] { width: 10%; }
  19. [data-score-width="15"] { width: 15%; }
  20. [data-score-width="20"] { width: 20%; }
  21. [data-score-width="25"] { width: 25%; }
  22. [data-score-width="30"] { width: 30%; }
  23. [data-score-width="35"] { width: 35%; }
  24. [data-score-width="40"] { width: 40%; }
  25. [data-score-width="45"] { width: 45%; }
  26. [data-score-width="50"] { width: 50%; }
  27. [data-score-width="55"] { width: 55%; }
  28. [data-score-width="60"] { width: 60%; }
  29. [data-score-width="65"] { width: 65%; }
  30. [data-score-width="70"] { width: 70%; }
  31. [data-score-width="75"] { width: 75%; }
  32. [data-score-width="80"] { width: 80%; }
  33. [data-score-width="85"] { width: 85%; }
  34. [data-score-width="90"] { width: 90%; }
  35. [data-score-width="95"] { width: 95%; }
  36. [data-score-width="100"] { width: 100%; }