globals.css 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. @import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap");
  2. @import "./additional-styles/utility-patterns.css";
  3. @import "./additional-styles/highlights.css";
  4. @tailwind base;
  5. @tailwind components;
  6. @tailwind utilities;
  7. @plugin "daisyui";
  8. :root {
  9. --font-sans: "Plus Jakarta Sans", sans-serif;
  10. --text-xs: 0.75rem;
  11. --text-xs--line-height: 1.5;
  12. --text-sm: 0.875rem;
  13. --text-sm--line-height: 1.5715;
  14. --text-base: 1rem;
  15. --text-base--line-height: 1.5;
  16. --text-base--letter-spacing: -0.01em;
  17. --text-lg: 1.125rem;
  18. --text-lg--line-height: 1.5;
  19. --text-lg--letter-spacing: -0.01em;
  20. --text-xl: 1.25rem;
  21. --text-xl--line-height: 1.5;
  22. --text-xl--letter-spacing: -0.01em;
  23. --text-2xl: 1.5rem;
  24. --text-2xl--line-height: 1.415;
  25. --text-2xl--letter-spacing: -0.01em;
  26. --text-3xl: 1.875rem;
  27. --text-3xl--line-height: 1.333;
  28. --text-3xl--letter-spacing: -0.01em;
  29. --text-4xl: 2.25rem;
  30. --text-4xl--line-height: 1.277;
  31. --text-4xl--letter-spacing: -0.01em;
  32. --text-5xl: 3rem;
  33. --text-5xl--line-height: 1;
  34. --text-5xl--letter-spacing: -0.01em;
  35. --text-6xl: 3.5rem;
  36. --text-6xl--line-height: 1;
  37. --text-6xl--letter-spacing: -0.01em;
  38. --text-7xl: 4.5rem;
  39. --text-7xl--line-height: 1;
  40. --text-7xl--letter-spacing: -0.01em;
  41. /* Highlight accent colors */
  42. --color-primary: #335cff;
  43. --color-accent: #6683f8;
  44. --color-accent-pink: #ff7eb6;
  45. --color-accent-orange: #ffedd5;
  46. --color-accent-red: #cf0026;
  47. /* Light theme colors */
  48. --color-base-100: oklch(98% 0.005 255);
  49. --color-base-200: oklch(96% 0.005 255);
  50. --color-base-300: oklch(93% 0.005 255);
  51. --color-base-content: oklch(18% 0.01 255);
  52. --color-primary-content: oklch(98% 0.005 255);
  53. --color-secondary: oklch(90% 0.01 255);
  54. --color-secondary-content: oklch(18% 0.01 255);
  55. --color-accent-content: oklch(18% 0.01 255);
  56. --color-neutral: oklch(95% 0.005 255);
  57. --color-neutral-content: oklch(18% 0.01 255);
  58. --color-info: oklch(90% 0.01 255);
  59. --color-info-content: oklch(18% 0.01 255);
  60. --color-success: oklch(90% 0.01 255);
  61. --color-success-content: oklch(18% 0.01 255);
  62. --color-warning: oklch(90% 0.01 255);
  63. --color-warning-content: oklch(18% 0.01 255);
  64. --color-error: oklch(90% 0.01 255);
  65. --color-error-content: oklch(18% 0.01 255);
  66. }
  67. .dark {
  68. --color-base-100: oklch(25.33% 0.016 252.42);
  69. --color-base-200: oklch(23.26% 0.014 253.1);
  70. --color-base-300: oklch(21.15% 0.012 254.09);
  71. --color-base-content: oklch(97.807% 0.029 256.847);
  72. --color-primary: oklch(58% 0.233 277.117);
  73. --color-primary-content: oklch(96% 0.018 272.314);
  74. --color-secondary: oklch(65% 0.241 354.308);
  75. --color-secondary-content: oklch(94% 0.028 342.258);
  76. --color-accent: oklch(77% 0.152 181.912);
  77. --color-accent-content: oklch(38% 0.063 188.416);
  78. --color-neutral: oklch(14% 0.005 285.823);
  79. --color-neutral-content: oklch(92% 0.004 286.32);
  80. --color-info: oklch(74% 0.16 232.661);
  81. --color-info-content: oklch(29% 0.066 243.157);
  82. --color-success: oklch(76% 0.177 163.223);
  83. --color-success-content: oklch(37% 0.077 168.94);
  84. --color-warning: oklch(82% 0.189 84.429);
  85. --color-warning-content: oklch(41% 0.112 45.904);
  86. --color-error: oklch(71% 0.194 13.428);
  87. --color-error-content: oklch(27% 0.105 12.094);
  88. }
  89. @layer components {
  90. /* Muscle illustration styles */
  91. .muscle-enabled {
  92. @apply fill-blue-300 stroke-blue-500 cursor-pointer;
  93. }
  94. .muscle-enabled:hover {
  95. @apply fill-blue-400 stroke-blue-600;
  96. }
  97. .muscle-active {
  98. @apply fill-emerald-400 stroke-emerald-600;
  99. stroke-width: 1 !important;
  100. }
  101. .muscle-active:hover {
  102. @apply fill-emerald-500 stroke-emerald-700;
  103. }
  104. .muscle-hover {
  105. @apply fill-slate-300 stroke-slate-600;
  106. }
  107. .muscle-loading {
  108. @apply opacity-50 animate-pulse;
  109. }
  110. }
  111. .skeleton {
  112. @apply animate-pulse bg-gray-200 dark:bg-gray-700;
  113. }
  114. .dark code {
  115. @apply text-black;
  116. }
  117. @layer components {
  118. .sidebar .nav-link {
  119. @apply mx-[2px] mt-1 flex items-center gap-2.5 border border-transparent px-5 py-2.5 text-sm font-medium leading-tight text-gray transition hover:text-black dark:text-gray-500 dark:hover:text-white;
  120. @apply hover:rounded-lg hover:bg-gray-400;
  121. }
  122. .nav-item.sub-menu-active {
  123. @apply bg-light-theme !text-primary dark:bg-[#818CF8]/[6%] dark:!text-[#6683F8];
  124. }
  125. .nav-item.active {
  126. @apply !text-black dark:!text-white;
  127. }
  128. .sidebar .submenu > li > a {
  129. @apply flex rounded-lg px-2 py-1 font-medium text-gray-700 transition hover:bg-light-theme hover:text-primary dark:text-gray-600 dark:hover:bg-[#818CF8]/[6%] dark:hover:text-[#6683F8];
  130. }
  131. .sidebar.closed {
  132. @apply w-[260px] lg:w-[60px];
  133. }
  134. .sidebar.closed h3 {
  135. @apply rounded-none;
  136. }
  137. .sidebar.closed h3 > span {
  138. @apply lg:hidden;
  139. }
  140. .sidebar.closed h3 > svg {
  141. @apply lg:block;
  142. }
  143. .sidebar.closed .submenu {
  144. @apply lg:hidden;
  145. }
  146. .sidebar .nav-link span {
  147. @apply whitespace-nowrap transition-all;
  148. }
  149. .sidebar.closed .nav-link span {
  150. @apply lg:invisible lg:w-0;
  151. }
  152. .sidebar.closed .sidemenu {
  153. @apply px-2.5 lg:px-0;
  154. }
  155. .sidebar.closed .upgrade-menu {
  156. @apply hidden;
  157. }
  158. .sidebar.open {
  159. @apply ltr:left-0 rtl:right-0;
  160. }
  161. #overlay.open {
  162. @apply block;
  163. }
  164. /* Documentation page */
  165. .header-menu.open {
  166. @apply right-0;
  167. }
  168. .gradient-bar {
  169. background: linear-gradient(
  170. 133deg,
  171. rgba(236, 196, 64, 0.2) 0%,
  172. rgba(255, 250, 138, 0.2) 33%,
  173. rgba(221, 172, 23, 0.2) 68%,
  174. rgba(255, 255, 149, 0.2) 100%
  175. );
  176. }
  177. .gradient-border {
  178. background: linear-gradient(133deg, #ecc440 0%, #fffa8a 33%, #ddac17 68%, #ffff95 100%);
  179. }
  180. /* Horizontal layout */
  181. .horizontal header .sidebar {
  182. @apply lg:flex;
  183. }
  184. .horizontal #sidebar {
  185. @apply ltr:lg:-left-full rtl:lg:-right-full;
  186. }
  187. .horizontal #main-content {
  188. @apply lg:mt-[122px] ltr:ml-0 rtl:mr-0;
  189. }
  190. .link {
  191. @apply text-base font-medium transition-colors duration-200;
  192. }
  193. .link:hover {
  194. @apply underline decoration-2 underline-offset-4;
  195. }
  196. .link-nav {
  197. @apply text-base text-base-content/80 hover:text-base-content;
  198. }
  199. .link-footer {
  200. @apply text-base/40 text-base-content/50 hover:text-base-content;
  201. }
  202. }
  203. .ratio-dynamic {
  204. position: relative;
  205. left: 50%;
  206. top: 50%;
  207. transform: translate(-50%, -50%);
  208. /* Optionnel: arrondis, bordures, etc. */
  209. border-radius: 2rem;
  210. overflow: hidden;
  211. background: white;
  212. border: 10px solid black;
  213. padding: 0.5rem;
  214. /* Pour l'effet responsive: */
  215. width: 100vw;
  216. height: calc(100vw / (9 / 18));
  217. max-width: 400px; /* ou ce que tu veux */
  218. max-height: 80vh;
  219. }
  220. @media (min-aspect-ratio: 9/18) {
  221. .ratio-dynamic {
  222. width: calc(100vh * (9 / 18));
  223. height: 100vh;
  224. }
  225. }
  226. .horizontal header .sidebar {
  227. scrollbar-width: thin;
  228. overflow-x: auto;
  229. scroll-snap-type: x mandatory;
  230. }
  231. /* Boxed layout */
  232. .box-layout .main-content,
  233. .box-layout header {
  234. @apply mx-auto w-full max-w-[1400px];
  235. }
  236. .box-layout .sidebar {
  237. @apply ltr:lg:left-auto rtl:lg:right-auto;
  238. }
  239. /* Collapsible layout */
  240. .collapsible #main-content {
  241. @apply ltr:lg:ml-[60px] rtl:lg:mr-[60px];
  242. }
  243. .bg-hero-light {
  244. background-image:
  245. radial-gradient(circle at 82% 60%, rgba(59, 59, 59, 0.06) 0%, rgba(59, 59, 59, 0.06) 69%, transparent 69%, transparent 100%),
  246. radial-gradient(circle at 36% 0%, rgba(185, 185, 185, 0.06) 0%, rgba(185, 185, 185, 0.06) 59%, transparent 59%, transparent 100%),
  247. radial-gradient(circle at 58% 82%, rgba(183, 183, 183, 0.06) 0%, rgba(183, 183, 183, 0.06) 17%, transparent 17%, transparent 100%),
  248. radial-gradient(circle at 71% 32%, rgba(19, 19, 19, 0.06) 0%, rgba(19, 19, 19, 0.06) 40%, transparent 40%, transparent 100%),
  249. radial-gradient(circle at 77% 5%, rgba(31, 31, 31, 0.06) 0%, rgba(31, 31, 31, 0.06) 52%, transparent 52%, transparent 100%),
  250. radial-gradient(circle at 96% 80%, rgba(11, 11, 11, 0.06) 0%, rgba(11, 11, 11, 0.06) 73%, transparent 73%, transparent 100%),
  251. radial-gradient(circle at 91% 59%, rgba(252, 252, 252, 0.06) 0%, rgba(252, 252, 252, 0.06) 44%, transparent 44%, transparent 100%),
  252. radial-gradient(circle at 52% 82%, rgba(223, 223, 223, 0.06) 0%, rgba(223, 223, 223, 0.06) 87%, transparent 87%, transparent 100%),
  253. radial-gradient(circle at 84% 89%, rgba(160, 160, 160, 0.06) 0%, rgba(160, 160, 160, 0.06) 57%, transparent 57%, transparent 100%),
  254. linear-gradient(90deg, rgb(254, 242, 164), rgb(166, 255, 237));
  255. }
  256. .bg-hero-dark {
  257. background-image:
  258. radial-gradient(circle at 82% 60%, rgba(80, 80, 120, 0.1) 0%, rgba(80, 80, 120, 0.1) 69%, transparent 69%, transparent 100%),
  259. radial-gradient(circle at 36% 0%, rgba(40, 40, 60, 0.1) 0%, rgba(40, 40, 60, 0.1) 59%, transparent 59%, transparent 100%),
  260. radial-gradient(circle at 58% 82%, rgba(60, 60, 100, 0.1) 0%, rgba(60, 60, 100, 0.1) 17%, transparent 17%, transparent 100%),
  261. radial-gradient(circle at 71% 32%, rgba(19, 19, 40, 0.1) 0%, rgba(19, 19, 40, 0.1) 40%, transparent 40%, transparent 100%),
  262. radial-gradient(circle at 77% 5%, rgba(31, 31, 60, 0.1) 0%, rgba(31, 31, 60, 0.1) 52%, transparent 52%, transparent 100%),
  263. radial-gradient(circle at 96% 80%, rgba(11, 11, 30, 0.1) 0%, rgba(11, 11, 30, 0.1) 73%, transparent 73%, transparent 100%),
  264. radial-gradient(circle at 91% 59%, rgba(80, 80, 120, 0.1) 0%, rgba(80, 80, 120, 0.1) 44%, transparent 44%, transparent 100%),
  265. radial-gradient(circle at 52% 82%, rgba(60, 60, 100, 0.1) 0%, rgba(60, 60, 100, 0.1) 87%, transparent 87%, transparent 100%),
  266. radial-gradient(circle at 84% 89%, rgba(80, 80, 120, 0.1) 0%, rgba(80, 80, 120, 0.1) 57%, transparent 57%, transparent 100%),
  267. linear-gradient(90deg, #232324, #18181b);
  268. }
  269. @keyframes fade-in-up {
  270. from {
  271. opacity: 0;
  272. transform: translateY(20px);
  273. }
  274. to {
  275. opacity: 1;
  276. transform: translateY(0);
  277. }
  278. }
  279. @keyframes slide-up {
  280. from {
  281. opacity: 0;
  282. transform: translateY(100%) translateX(-50%);
  283. }
  284. to {
  285. opacity: 1;
  286. transform: translateY(0) translateX(-50%);
  287. }
  288. }
  289. .animate-fade-in-up {
  290. animation: fade-in-up 0.6s ease-out;
  291. }
  292. .animate-slide-up {
  293. animation: slide-up 0.4s ease-out;
  294. }
  295. /* Smooth focus styles pour l'accessibilité */
  296. .equipment-card:focus-visible {
  297. outline: 2px solid #10b981;
  298. outline-offset: 2px;
  299. }