theme.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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. 'danger': string,
  29. 'on-danger': string,
  30. 'success': string,
  31. 'on-success': string,
  32. 'warning': string,
  33. 'on-warning': string,
  34. 'info': string,
  35. 'on-info': string,
  36. // Special cases
  37. // TODO: voir ceux dont on peut se passer
  38. 'x-create-btn': string,
  39. 'on-x-create-btn': string
  40. }
  41. }
  42. export const lightTheme: Theme = {
  43. dark: false,
  44. colors: {
  45. 'background': '#ecf0f5',
  46. 'on-background': '#000000',
  47. 'surface': '#ffffff',
  48. 'on-surface': '#000000',
  49. 'primary': '#00ad8e',
  50. 'on-primary': '#ffffff',
  51. 'primary-alt': '#a9e0d6',
  52. 'on-primary-alt': '#777777',
  53. 'secondary': '#324150',
  54. 'on-secondary': '#f5f5f5',
  55. 'secondary-alt': '#2a3745',
  56. 'on-secondary-alt': '#ffffff',
  57. 'neutral-strong': '#777777',
  58. 'on-neutral-strong': '#ecf0f5',
  59. 'neutral': '#e6e6e6',
  60. 'on-neutral': '#666666',
  61. 'on-neutral--clickable': '#00997d',
  62. 'neutral-soft': '#ecf0f5',
  63. 'on-neutral-soft': '#464646',
  64. // Content
  65. 'danger': '#f56954',
  66. 'on-danger': '#ffffff',
  67. 'success': '#00a65a',
  68. 'on-success': '#ffffff',
  69. 'warning': '#f39c12',
  70. 'on-warning': '#ffffff',
  71. 'info': '#3c8dbc',
  72. 'on-info': '#ffffff',
  73. 'x-create-btn': '#f39c12',
  74. 'on-x-create-btn': '#ffffff',
  75. }
  76. }
  77. export const darkTheme: Theme = {
  78. dark: true,
  79. colors: {
  80. 'background': '#1a1a1a',
  81. 'on-background': '#ffffff',
  82. 'surface': '#262626',
  83. 'on-surface': '#ffffff',
  84. 'primary': '#00ad8e',
  85. 'on-primary': '#ffffff',
  86. 'primary-alt': '#a9e0d6',
  87. 'on-primary-alt': '#777777',
  88. 'secondary': '#324150',
  89. 'on-secondary': '#f5f5f5',
  90. 'secondary-alt': '#2c3a48',
  91. 'on-secondary-alt': '#ffffff',
  92. 'neutral-strong': '#595959',
  93. 'on-neutral-strong': '#ecf0f5',
  94. 'neutral': '#324150',
  95. 'on-neutral': '#cccccc',
  96. 'on-neutral--clickable': '#a9e0d6',
  97. 'neutral-soft': '#090c11',
  98. 'on-neutral-soft': '#cccccc',
  99. // Content
  100. 'danger': '#f56954',
  101. 'on-danger': '#ffffff',
  102. 'success': '#00a65a',
  103. 'on-success': '#ffffff',
  104. 'warning': '#f39c12',
  105. 'on-warning': '#ffffff',
  106. 'info': '#3c8dbc',
  107. 'on-info': '#ffffff',
  108. 'x-create-btn': '#f39c12',
  109. 'on-x-create-btn': '#ffffff',
  110. }
  111. }