theme.ts 3.5 KB

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