theme.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. interface Theme {
  2. dark: boolean
  3. colors: {
  4. /**
  5. * @see Cf. doc/colors.md pour le rôle de chaque couleur
  6. */
  7. // Global
  8. background: string
  9. 'on-background': string
  10. surface: string
  11. 'on-surface': string
  12. primary: string
  13. 'on-primary': string
  14. 'primary-alt': string
  15. 'on-primary-alt': string
  16. secondary: string
  17. 'on-secondary': string
  18. 'secondary-alt': string
  19. 'on-secondary-alt': string
  20. 'neutral-strong': string
  21. 'on-neutral-strong': string
  22. neutral: string
  23. 'on-neutral': string
  24. 'on-neutral--clickable': string
  25. 'neutral-soft': string
  26. 'on-neutral-soft': string
  27. 'neutral-very-soft': string
  28. 'on-neutral-very-soft': string
  29. danger: string
  30. 'on-danger': string
  31. success: string
  32. 'on-success': string
  33. warning: string
  34. 'on-warning': string
  35. info: string
  36. 'on-info': string
  37. // Special cases
  38. // TODO: voir ceux dont on peut se passer
  39. 'x-create-btn': string
  40. 'on-x-create-btn': string
  41. }
  42. }
  43. export const lightTheme: Theme = {
  44. dark: false,
  45. colors: {
  46. background: '#ecf0f5',
  47. 'on-background': '#000000',
  48. surface: '#ffffff',
  49. 'on-surface': '#000000',
  50. primary: '#00ad8e',
  51. 'on-primary': '#ffffff',
  52. 'primary-alt': '#a9e0d6',
  53. 'on-primary-alt': '#777777',
  54. secondary: '#324150',
  55. 'on-secondary': '#f5f5f5',
  56. 'secondary-alt': '#2a3745',
  57. 'on-secondary-alt': '#ffffff',
  58. 'neutral-strong': '#777777',
  59. 'on-neutral-strong': '#ecf0f5',
  60. neutral: '#e6e6e6',
  61. 'on-neutral': '#666666',
  62. 'on-neutral--clickable': '#00997d',
  63. 'neutral-soft': '#f2f2f2',
  64. 'on-neutral-soft': '#333333',
  65. 'neutral-very-soft': '#ffffff',
  66. 'on-neutral-very-soft': '#333333',
  67. // Content
  68. danger: '#f56954',
  69. 'on-danger': '#ffffff',
  70. success: '#00a65a',
  71. 'on-success': '#ffffff',
  72. warning: '#f39c12',
  73. 'on-warning': '#ffffff',
  74. info: '#3c8dbc',
  75. 'on-info': '#ffffff',
  76. 'x-create-btn': '#f39c12',
  77. 'on-x-create-btn': '#ffffff',
  78. },
  79. }
  80. export const darkTheme: Theme = {
  81. dark: true,
  82. colors: {
  83. background: '#1a1a1a',
  84. 'on-background': '#ffffff',
  85. surface: '#262626',
  86. 'on-surface': '#ffffff',
  87. primary: '#00ad8e',
  88. 'on-primary': '#ffffff',
  89. 'primary-alt': '#a9e0d6',
  90. 'on-primary-alt': '#777777',
  91. secondary: '#324150',
  92. 'on-secondary': '#f5f5f5',
  93. 'secondary-alt': '#2c3a48',
  94. 'on-secondary-alt': '#ffffff',
  95. 'neutral-strong': '#595959',
  96. 'on-neutral-strong': '#ecf0f5',
  97. neutral: '#324150',
  98. 'on-neutral': '#cccccc',
  99. 'on-neutral--clickable': '#a9e0d6',
  100. 'neutral-soft': '#090c11',
  101. 'on-neutral-soft': '#cccccc',
  102. 'neutral-very-soft': '#333333',
  103. 'on-neutral-very-soft': '#ecf0f5',
  104. // Content
  105. danger: '#f56954',
  106. 'on-danger': '#ffffff',
  107. success: '#00a65a',
  108. 'on-success': '#ffffff',
  109. warning: '#f39c12',
  110. 'on-warning': '#ffffff',
  111. info: '#3c8dbc',
  112. 'on-info': '#ffffff',
  113. 'x-create-btn': '#f39c12',
  114. 'on-x-create-btn': '#ffffff',
  115. },
  116. }