Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958
  1. /*
  2. * SonarQube
  3. * Copyright (C) 2009-2024 SonarSource SA
  4. * mailto:info AT sonarsource DOT com
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 3 of the License, or (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public License
  17. * along with this program; if not, write to the Free Software Foundation,
  18. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  19. */
  20. import { OPACITY_20_PERCENT, OPACITY_75_PERCENT } from '../helpers/constants';
  21. import COLORS from './colors';
  22. const primary = {
  23. light: COLORS.indigo[400],
  24. default: COLORS.indigo[500],
  25. dark: COLORS.indigo[600],
  26. };
  27. const secondary = {
  28. light: COLORS.blueGrey[50],
  29. default: COLORS.blueGrey[200],
  30. dark: COLORS.blueGrey[400],
  31. darker: COLORS.blueGrey[500],
  32. };
  33. const danger = {
  34. lightest: COLORS.red[50],
  35. lighter: COLORS.red[300],
  36. light: COLORS.red[400],
  37. default: COLORS.red[600],
  38. dark: COLORS.red[700],
  39. darker: COLORS.red[800],
  40. };
  41. const codeSnippetLight = {
  42. annotations: [34, 84, 192],
  43. body: [51, 53, 60],
  44. constants: [126, 83, 5],
  45. comments: [109, 111, 119],
  46. keyword: [152, 29, 150],
  47. string: [32, 105, 31],
  48. 'keyword-light': [28, 28, 163], // Not used currently in code snippet
  49. 'preprocessing-directive': [47, 103, 48],
  50. };
  51. export const lightTheme = {
  52. id: 'light-theme',
  53. highlightTheme: 'atom-one-light.css',
  54. logo: 'sonarcloud-logo-black.svg',
  55. colors: {
  56. transparent: 'transparent',
  57. currentColor: 'currentColor',
  58. backgroundPrimary: COLORS.blueGrey[25],
  59. backgroundSecondary: COLORS.white,
  60. border: COLORS.grey[50],
  61. sonarcloud: COLORS.sonarcloud,
  62. // primary
  63. primaryLight: primary.light,
  64. primary: primary.default,
  65. primaryDark: primary.dark,
  66. // danger
  67. danger: danger.dark,
  68. // text
  69. textDisabled: COLORS.blueGrey[300],
  70. textSubdued: COLORS.blueGrey[400],
  71. textSuccess: COLORS.yellowGreen[700],
  72. //Project list card
  73. projectCardDisabled: COLORS.blueGrey[200],
  74. // buttons
  75. button: primary.default,
  76. buttonHover: primary.dark,
  77. buttonSecondary: COLORS.white,
  78. buttonSecondaryBorder: secondary.default,
  79. buttonSecondaryHover: secondary.light,
  80. buttonDisabled: secondary.light,
  81. buttonDisabledBorder: secondary.default,
  82. // danger buttons
  83. dangerButton: danger.default,
  84. dangerButtonHover: danger.dark,
  85. dangerButtonFocus: danger.default,
  86. dangerButtonSecondary: COLORS.white,
  87. dangerButtonSecondaryBorder: danger.lighter,
  88. dangerButtonSecondaryHover: danger.lightest,
  89. dangerButtonSecondaryFocus: danger.light,
  90. // third party button
  91. thirdPartyButton: COLORS.white,
  92. thirdPartyButtonBorder: secondary.default,
  93. thirdPartyButtonHover: secondary.light,
  94. // popup
  95. popup: COLORS.white,
  96. popupBorder: secondary.default,
  97. // Toasts
  98. toast: COLORS.white,
  99. toastText: secondary.darker,
  100. toastCloseIcon: secondary.dark,
  101. toastErrorBorder: danger.light,
  102. toastErrorIconBackground: danger.lightest,
  103. toastWarningBorder: COLORS.yellow[400],
  104. toastWarningIconBackground: COLORS.yellow[50],
  105. toastSuccessBorder: COLORS.yellowGreen[400],
  106. toastSuccessIconBackground: COLORS.yellowGreen[50],
  107. toastInfoBorder: COLORS.blue[400],
  108. toastInfoIconBackground: COLORS.blue[50],
  109. // spotlight
  110. spotlightPulseBackground: primary.default,
  111. spotlightBackgroundColor: COLORS.blueGrey[50],
  112. // modal
  113. modalContents: COLORS.white,
  114. modalOverlay: [...COLORS.blueGrey[900], OPACITY_75_PERCENT],
  115. // dropdown menu
  116. dropdownMenu: COLORS.white,
  117. dropdownMenuHover: secondary.light,
  118. dropdownMenuFocus: COLORS.indigo[50],
  119. dropdownMenuFocusBorder: primary.light,
  120. dropdownMenuDisabled: COLORS.white,
  121. dropdownMenuHeader: COLORS.white,
  122. dropdownMenuDanger: danger.default,
  123. dropdownMenuSubTitle: secondary.dark,
  124. // radio
  125. radio: primary.default,
  126. radioBorder: primary.default,
  127. radioHover: COLORS.indigo[50],
  128. radioFocus: COLORS.indigo[50],
  129. radioFocusBorder: COLORS.indigo[300],
  130. radioFocusOutline: [...COLORS.indigo[300], OPACITY_20_PERCENT],
  131. radioChecked: COLORS.indigo[50],
  132. radioDisabled: secondary.default,
  133. radioDisabledBackground: secondary.light,
  134. radioDisabledBorder: secondary.default,
  135. radioDisabledLabel: COLORS.blueGrey[300],
  136. // switch
  137. switch: secondary.default,
  138. switchDisabled: COLORS.blueGrey[100],
  139. switchActive: primary.default,
  140. switchHover: COLORS.blueGrey[300],
  141. switchHoverActive: primary.light,
  142. switchButton: COLORS.white,
  143. switchButtonDisabled: secondary.light,
  144. // sidebar
  145. // NOTE: these aren't used because the sidebar is exclusively dark. but for type purposes are listed here
  146. sidebarBackground: COLORS.blueGrey[700],
  147. sidebarItemActive: COLORS.blueGrey[800],
  148. sidebarBorder: COLORS.blueGrey[500],
  149. sidebarTextDisabled: COLORS.blueGrey[400],
  150. sidebarIcon: COLORS.blueGrey[400],
  151. sidebarActiveIcon: COLORS.blueGrey[200],
  152. //separator-circle
  153. separatorCircle: COLORS.blueGrey[200],
  154. separatorSlash: COLORS.blueGrey[300],
  155. // rule breakdown table
  156. breakdownBorder: COLORS.grey[100],
  157. breakdownHeaderBackground: COLORS.blueGrey[50],
  158. // flag message
  159. flagMessageBackground: COLORS.white,
  160. errorBorder: danger.light,
  161. errorBackground: danger.lightest,
  162. errorText: danger.dark,
  163. warningBorder: COLORS.yellow[400],
  164. warningBackground: COLORS.yellow[50],
  165. warningText: COLORS.yellow[900],
  166. successBorder: COLORS.green[400],
  167. successBackground: COLORS.green[50],
  168. successText: COLORS.green[900],
  169. infoBorder: COLORS.blue[400],
  170. infoBackground: COLORS.blue[50],
  171. infoText: COLORS.blue[900],
  172. // banner message
  173. bannerMessage: danger.lightest,
  174. bannerMessageIcon: danger.darker,
  175. // toggle buttons
  176. toggle: COLORS.white,
  177. toggleBorder: secondary.default,
  178. toggleHover: secondary.light,
  179. toggleFocus: [...secondary.default, OPACITY_20_PERCENT],
  180. // code snippet
  181. codeSnippetBackground: COLORS.blueGrey[25],
  182. codeSnippetBorder: COLORS.blueGrey[100],
  183. codeSnippetHighlight: secondary.default,
  184. codeSnippetBody: codeSnippetLight.body,
  185. codeSnippetAnnotations: codeSnippetLight.annotations,
  186. codeSnippetComments: codeSnippetLight.comments,
  187. codeSnippetConstants: codeSnippetLight.constants,
  188. codeSnippetKeyword: codeSnippetLight.keyword,
  189. codeSnippetString: codeSnippetLight.string,
  190. codeSnippetKeywordLight: codeSnippetLight['keyword-light'],
  191. codeSnippetPreprocessingDirective: codeSnippetLight['preprocessing-directive'],
  192. codeSnippetInline: COLORS.blueGrey[500],
  193. // code viewer
  194. codeLine: COLORS.white,
  195. codeLineBorder: COLORS.grey[100],
  196. codeLineIssueIndicator: COLORS.blueGrey[400], // Should be blueGrey[300], to be changed once code viewer is reworked
  197. codeLineLocationMarker: COLORS.red[200],
  198. codeLineLocationMarkerSelected: danger.lighter,
  199. codeLineLocationSelected: COLORS.blueGrey[100],
  200. codeLineCoveredUnderline: [...COLORS.green[500], 0.15],
  201. codeLineUncoveredUnderline: [...COLORS.red[500], 0.15],
  202. codeLineHover: secondary.light,
  203. codeLineHighlighted: COLORS.blueGrey[100],
  204. codeLineNewCodeUnderline: [...COLORS.indigo[300], 0.15],
  205. codeLineMeta: COLORS.blueGrey[300],
  206. codeLineMetaHover: secondary.dark,
  207. codeLineDuplication: secondary.default,
  208. codeLineCovered: COLORS.green[300],
  209. codeLineUncovered: danger.default,
  210. codeLinePartiallyCoveredA: danger.default,
  211. codeLinePartiallyCoveredB: COLORS.white,
  212. codeLineIssueSquiggle: danger.lighter,
  213. codeLineIssuePointerBorder: COLORS.white,
  214. codeLineLocationHighlighted: [...COLORS.blueGrey[200], 0.6],
  215. codeLineEllipsis: COLORS.white,
  216. codeLineEllipsisHover: secondary.light,
  217. codeLineIssueLocation: [...danger.lighter, 0.15],
  218. codeLineIssueLocationSelected: [...danger.lighter, 0.5],
  219. codeLineIssueMessageTooltip: secondary.darker,
  220. // code syntax highlight
  221. codeSyntaxBody: COLORS.codeSyntaxLight.body,
  222. codeSyntaxAnnotations: COLORS.codeSyntaxLight.annotations,
  223. codeSyntaxConstants: COLORS.codeSyntaxLight.constants,
  224. codeSyntaxComments: COLORS.codeSyntaxLight.comments,
  225. codeSyntaxKeyword: COLORS.codeSyntaxLight.keyword,
  226. codeSyntaxString: COLORS.codeSyntaxLight.string,
  227. codeSyntaxKeywordLight: COLORS.codeSyntaxLight['keyword-light'],
  228. codeSyntaxPreprocessingDirective: COLORS.codeSyntaxLight['preprocessing-directive'],
  229. // checkbox
  230. checkboxHover: COLORS.indigo[50],
  231. checkboxCheckedHover: primary.light,
  232. checkboxDisabled: secondary.light,
  233. checkboxDisabledChecked: secondary.default,
  234. checkboxLabel: COLORS.blueGrey[500],
  235. // input search
  236. searchHighlight: COLORS.tangerine[50],
  237. // input field
  238. inputBackground: COLORS.white,
  239. inputBorder: secondary.default,
  240. inputFocus: primary.light,
  241. inputDanger: danger.default,
  242. inputDangerFocus: danger.light,
  243. inputSuccess: COLORS.yellowGreen[500],
  244. inputSuccessFocus: COLORS.yellowGreen[400],
  245. inputDisabled: secondary.light,
  246. inputDisabledBorder: secondary.default,
  247. inputPlaceholder: secondary.dark,
  248. // required input
  249. inputRequired: danger.dark,
  250. // tooltip
  251. tooltipBackground: COLORS.blueGrey[600],
  252. tooltipSeparator: secondary.dark,
  253. tooltipHighlight: secondary.default,
  254. // avatar
  255. avatarBackground: COLORS.white,
  256. avatarBorder: COLORS.blueGrey[100],
  257. // badges
  258. badgeNew: COLORS.indigo[100],
  259. badgeDefault: COLORS.blueGrey[100],
  260. badgeDeleted: COLORS.red[100],
  261. badgeCounter: COLORS.blueGrey[100],
  262. badgeCounterFailed: COLORS.red[50],
  263. badgeCounterFailedBorder: COLORS.red[200],
  264. // pills
  265. pillDanger: COLORS.red[50],
  266. pillDangerBorder: COLORS.red[300],
  267. pillWarning: COLORS.yellow[50],
  268. pillWarningBorder: COLORS.yellow[300],
  269. pillInfo: COLORS.blue[50],
  270. pillInfoBorder: COLORS.blue[300],
  271. pillAccent: COLORS.indigo[50],
  272. pillAccentBorder: 'transparent',
  273. // input select
  274. selectOptionSelected: secondary.light,
  275. // breadcrumbs
  276. breadcrumb: 'transparent',
  277. // tab
  278. tabBorder: primary.light,
  279. // tabs
  280. tab: COLORS.blueGrey[400],
  281. tabSelected: primary.default,
  282. tabHover: COLORS.blueGrey[25],
  283. //table
  284. tableRowHover: COLORS.indigo[25],
  285. tableRowSelected: COLORS.indigo[300],
  286. // links
  287. linkDefault: primary.default,
  288. linkNaked: COLORS.blueGrey[700],
  289. linkActive: COLORS.indigo[600],
  290. linkDiscreet: 'currentColor',
  291. linkTooltipDefault: COLORS.indigo[200],
  292. linkTooltipActive: COLORS.indigo[100],
  293. linkBorder: COLORS.indigo[300],
  294. linkExternalIcon: COLORS.indigo[300],
  295. linkExternalIconActive: COLORS.indigo[400],
  296. contentLinkBorder: COLORS.blueGrey[200],
  297. // discreet select
  298. discreetBorder: secondary.default,
  299. discreetBackground: COLORS.white,
  300. discreetHover: secondary.light,
  301. discreetButtonHover: COLORS.indigo[500],
  302. discreetFocus: COLORS.indigo[50],
  303. discreetFocusBorder: primary.light,
  304. // interactive icon
  305. interactiveIcon: 'transparent',
  306. interactiveIconHover: COLORS.indigo[50],
  307. interactiveIconFocus: primary.default,
  308. bannerIcon: 'transparent',
  309. bannerIconHover: [...COLORS.red[600], OPACITY_20_PERCENT],
  310. bannerIconFocus: danger.default,
  311. discreetInteractiveIcon: secondary.dark,
  312. destructiveIcon: 'transparent',
  313. destructiveIconHover: danger.lightest,
  314. destructiveIconFocus: danger.default,
  315. // icons
  316. iconSoftwareImpactSeverityHigh: COLORS.red[500],
  317. iconSoftwareImpactSeverityMedium: COLORS.yellow[700],
  318. iconSoftwareImpactSeverityLow: COLORS.blue[700],
  319. iconSoftwareImpactSeverityDisabled: COLORS.blueGrey[300],
  320. iconSeverityMajor: danger.light,
  321. iconSeverityMinor: COLORS.yellowGreen[400],
  322. iconSeverityInfo: COLORS.blue[400],
  323. iconSeverityDisabled: COLORS.blueGrey[300],
  324. iconTypeDisabled: COLORS.blueGrey[300],
  325. iconDirectory: COLORS.orange[300],
  326. iconFile: COLORS.blueGrey[300],
  327. iconProject: COLORS.blueGrey[300],
  328. iconUnitTest: COLORS.blueGrey[300],
  329. iconFavorite: COLORS.tangerine[400],
  330. iconCheck: COLORS.green[500],
  331. iconPositiveUpdate: COLORS.green[300],
  332. iconNegativeUpdate: COLORS.red[300],
  333. iconTrendPositive: COLORS.green[400],
  334. iconTrendNegative: COLORS.red[400],
  335. iconTrendNeutral: COLORS.blue[400],
  336. iconTrendDisabled: COLORS.blueGrey[400],
  337. iconError: danger.default,
  338. iconWarning: COLORS.yellow[600],
  339. iconSuccess: COLORS.green[600],
  340. iconInfo: COLORS.blue[600],
  341. iconStatus: COLORS.blueGrey[200],
  342. iconStatusResolved: secondary.dark,
  343. iconNotificationsOn: COLORS.indigo[300],
  344. iconHelperHint: COLORS.blueGrey[100],
  345. iconHelperHintRaised: COLORS.blueGrey[400],
  346. iconRuleInheritanceOverride: danger.light,
  347. // numbered list
  348. numberedList: COLORS.indigo[50],
  349. numberedListText: COLORS.indigo[800],
  350. // unordered list
  351. listMarker: COLORS.blueGrey[300],
  352. // product news
  353. productNews: COLORS.indigo[50],
  354. productNewsHover: COLORS.indigo[100],
  355. // scrollbar
  356. scrollbar: COLORS.blueGrey[25],
  357. // resizer
  358. resizer: secondary.default,
  359. // coverage indicators
  360. coverageGreen: COLORS.green[500],
  361. coverageRed: danger.dark,
  362. // duplications indicators
  363. 'duplicationsIndicator.A': COLORS.green[500],
  364. 'duplicationsIndicator.B': COLORS.green[500],
  365. 'duplicationsIndicator.C': COLORS.yellowGreen[500],
  366. 'duplicationsIndicator.D': COLORS.yellow[500],
  367. 'duplicationsIndicator.E': COLORS.orange[500],
  368. 'duplicationsIndicator.F': COLORS.red[500],
  369. duplicationsIndicatorSecondary: secondary.light,
  370. // size indicators
  371. sizeIndicator: COLORS.blue[500],
  372. // rating colors
  373. 'rating.A': COLORS.green[200],
  374. 'rating.B': COLORS.yellowGreen[200],
  375. 'rating.C': COLORS.yellow[200],
  376. 'rating.D': COLORS.orange[200],
  377. 'rating.E': COLORS.red[200],
  378. // rating donut outside circle indicators
  379. 'ratingDonut.A': COLORS.green[400],
  380. 'ratingDonut.B': COLORS.yellowGreen[400],
  381. 'ratingDonut.C': COLORS.yellow[400],
  382. 'ratingDonut.D': COLORS.orange[400],
  383. 'ratingDonut.E': COLORS.red[400],
  384. // date picker
  385. datePicker: COLORS.white,
  386. datePickerIcon: secondary.default,
  387. datePickerDisabled: COLORS.white,
  388. datePickerDefault: COLORS.white,
  389. datePickerHover: COLORS.blueGrey[100],
  390. datePickerSelected: primary.default,
  391. datePickerRange: COLORS.indigo[100],
  392. // tags
  393. tag: secondary.light,
  394. // quality gate indicator
  395. qgIndicatorPassed: COLORS.green[200],
  396. qgIndicatorFailed: COLORS.red[200],
  397. qgIndicatorNotComputed: COLORS.blueGrey[200],
  398. // quality gate status card
  399. qgCardFailed: COLORS.red[300],
  400. // quality gate texts colors
  401. qgConditionNotCayc: COLORS.red[600],
  402. qgConditionCayc: COLORS.green[600],
  403. // main bar
  404. mainBar: COLORS.white,
  405. mainBarHover: COLORS.blueGrey[600],
  406. mainBarLogo: COLORS.white,
  407. mainBarDarkLogo: COLORS.blueGrey[800],
  408. mainBarNews: COLORS.indigo[50],
  409. menuBorder: primary.light,
  410. // navbar
  411. navbar: COLORS.white,
  412. navbarTextMeta: secondary.darker,
  413. // filterbar
  414. filterbar: COLORS.white,
  415. filterbarBorder: COLORS.blueGrey[100],
  416. // facets
  417. facetHeader: COLORS.blueGrey[600],
  418. facetHeaderDisabled: COLORS.blueGrey[400],
  419. facetItemSelected: COLORS.indigo[50],
  420. facetItemSelectedHover: COLORS.indigo[100],
  421. facetItemSelectedBorder: primary.light,
  422. facetItemDisabled: COLORS.blueGrey[300],
  423. facetItemLight: secondary.dark,
  424. facetItemGraph: secondary.default,
  425. facetKeyboardHint: COLORS.blueGrey[50],
  426. facetToggleActive: COLORS.green[500],
  427. facetToggleInactive: COLORS.red[500],
  428. facetToggleHover: COLORS.blueGrey[600],
  429. // subnavigation sidebar
  430. subnavigation: COLORS.white,
  431. subnavigationHover: COLORS.blueGrey[50],
  432. subnavigationSelected: COLORS.blueGrey[100],
  433. subnavigationBorder: COLORS.grey[100],
  434. subnavigationSeparator: COLORS.grey[50],
  435. subnavigationSubheading: COLORS.blueGrey[25],
  436. subnavigationDisabled: COLORS.blueGrey[300],
  437. subnavigationExecutionFlow: COLORS.blueGrey[25],
  438. subnavigationExecutionFlowBorder: secondary.default,
  439. subnavigationExecutionFlowSeparator: COLORS.blueGrey[100],
  440. subnavigationExecutionFlowActive: COLORS.indigo[500],
  441. // footer
  442. footer: COLORS.white,
  443. footerBorder: COLORS.grey[100],
  444. // project
  445. projectCardBackground: COLORS.white,
  446. projectCardBorder: COLORS.blueGrey[100],
  447. projectCardInfo: COLORS.blueGrey[35],
  448. // overview
  449. overviewCardDefaultIcon: secondary.light,
  450. iconOverviewIssue: COLORS.blueGrey[400],
  451. overviewCardWarningIcon: COLORS.yellow[50],
  452. overviewCardErrorIcon: COLORS.red[100],
  453. overviewCardSuccessIcon: COLORS.green[200],
  454. // overview software impact breakdown
  455. overviewSoftwareImpactSeverityNeutral: COLORS.blueGrey[35],
  456. overviewSoftwareImpactSeverityHigh: COLORS.red[100],
  457. overviewSoftwareImpactSeverityMedium: COLORS.yellow[100],
  458. overviewSoftwareImpactSeverityLow: COLORS.blue[100],
  459. // graph - chart
  460. graphPointCircleColor: COLORS.white,
  461. 'graphLineColor.0': COLORS.blue[500],
  462. 'graphLineColor.1': COLORS.blue[700],
  463. 'graphLineColor.2': COLORS.blue[300],
  464. 'graphLineColor.3': COLORS.blue[500],
  465. 'graphLineColor.4': COLORS.blue[700],
  466. 'graphLineColor.5': COLORS.blue[300],
  467. graphGridColor: COLORS.grey[50],
  468. graphCursorLineColor: COLORS.blueGrey[400],
  469. newCodeHighlight: COLORS.indigo[300],
  470. graphZoomBackgroundColor: COLORS.blueGrey[25],
  471. graphZoomBorderColor: COLORS.blueGrey[100],
  472. graphZoomHandleColor: COLORS.blueGrey[400],
  473. graphLegendBorder: secondary.darker,
  474. // page
  475. pageTitle: COLORS.blueGrey[700],
  476. pageContentLight: secondary.dark,
  477. pageContent: secondary.darker,
  478. pageContentDark: COLORS.blueGrey[600],
  479. pageBlock: COLORS.white,
  480. pageBlockBorder: COLORS.blueGrey[100],
  481. // core concepts
  482. coreConceptsCloseIcon: COLORS.blueGrey[300],
  483. coreConceptsTitle: secondary.darker,
  484. coreConceptsBody: secondary.darker,
  485. coreConceptsHomeBorder: COLORS.blueGrey[100],
  486. coreConceptsCompleted: COLORS.green[500],
  487. coreConceptsPulse: COLORS.indigo[500],
  488. coreConceptsPulseFallback: COLORS.white,
  489. // progress bar
  490. coreConceptsProgressBar: secondary.light,
  491. // issue box
  492. issueBoxSelectedBorder: danger.lighter,
  493. issueBoxBorder: secondary.default,
  494. issueBoxBorderDepracated: secondary.default,
  495. issueTypeIcon: COLORS.red[200],
  496. // separator
  497. pipeSeparator: COLORS.blueGrey[100],
  498. // drilldown link
  499. drilldown: secondary.darker,
  500. drilldownBorder: secondary.default,
  501. // selection card
  502. selectionCardHeader: secondary.darker,
  503. selectionCardDisabled: secondary.light,
  504. selectionCardDisabledText: secondary.dark,
  505. selectionCardBorder: COLORS.blueGrey[100],
  506. selectionCardBorderHover: COLORS.indigo[200],
  507. selectionCardBorderSelected: primary.light,
  508. selectionCardBorderDisabled: secondary.default,
  509. // bubble charts
  510. bubbleChartLine: COLORS.grey[50],
  511. bubbleDefault: [...COLORS.blue[500], 0.3],
  512. 'bubble.1': [...COLORS.green[500], 0.3],
  513. 'bubble.2': [...COLORS.yellowGreen[500], 0.3],
  514. 'bubble.3': [...COLORS.yellow[500], 0.3],
  515. 'bubble.4': [...COLORS.orange[500], 0.3],
  516. 'bubble.5': [...COLORS.red[500], 0.3],
  517. // new code legend
  518. newCodeLegend: [...COLORS.indigo[300], 0.15],
  519. newCodeLegendBorder: COLORS.indigo[200],
  520. // highlighted section
  521. highlightedSection: COLORS.blueGrey[25],
  522. highlightedSectionBorder: COLORS.blueGrey[100],
  523. // highlight ring
  524. highlightRingBackground: secondary.light,
  525. // activity comments
  526. activityCommentPipe: COLORS.tangerine[200],
  527. // illustrations
  528. illustrationOutline: COLORS.blueGrey[400],
  529. illustrationInlineBorder: COLORS.blueGrey[100],
  530. illustrationPrimary: COLORS.indigo[400],
  531. illustrationSecondary: COLORS.indigo[200],
  532. illustrationShade: COLORS.indigo[25],
  533. // news bar
  534. newsBar: COLORS.white,
  535. newsBorder: COLORS.grey[100],
  536. newsContent: COLORS.white,
  537. newsTag: COLORS.blueGrey[50],
  538. roadmap: COLORS.indigo[25],
  539. roadmapContent: 'transparent',
  540. // project analyse page
  541. almCardBorder: COLORS.grey[100],
  542. // Keyboard hint
  543. keyboardHintKey: COLORS.blueGrey[100],
  544. // progressBar
  545. progressBarForeground: COLORS.indigo[500],
  546. progressBarBackground: COLORS.indigo[100],
  547. },
  548. // contrast colors to be used for text when using a color background with the same name
  549. // must match the color name
  550. contrasts: {
  551. backgroundPrimary: COLORS.blueGrey[900],
  552. backgroundSecondary: COLORS.blueGrey[900],
  553. primaryLight: secondary.darker,
  554. primary: COLORS.white,
  555. // switch
  556. switchHover: primary.light,
  557. switchButton: primary.default,
  558. switchButtonDisabled: COLORS.blueGrey[300],
  559. // sidebar
  560. sidebarBackground: COLORS.blueGrey[200],
  561. sidebarItemActive: COLORS.blueGrey[25],
  562. // flag message
  563. flagMessageBackground: secondary.darker,
  564. // info message
  565. infoBackground: COLORS.blue[900],
  566. // banner message
  567. bannerMessage: COLORS.red[900],
  568. // buttons
  569. buttonDisabled: COLORS.blueGrey[300],
  570. buttonSecondary: secondary.darker,
  571. // danger buttons
  572. dangerButton: COLORS.white,
  573. dangerButtonSecondary: danger.dark,
  574. // third party button
  575. thirdPartyButton: secondary.darker,
  576. // popup
  577. popup: secondary.darker,
  578. // dropdown menu
  579. dropdownMenu: secondary.darker,
  580. dropdownMenuDisabled: COLORS.blueGrey[300],
  581. dropdownMenuHeader: secondary.dark,
  582. // toggle buttons
  583. toggle: secondary.darker,
  584. toggleHover: secondary.darker,
  585. // code viewer
  586. codeLineNewCodeUnderline: COLORS.indigo[500],
  587. codeLineCoveredUnderline: COLORS.green[700],
  588. codeLineUncoveredUnderline: COLORS.red[700],
  589. codeLineEllipsis: COLORS.blueGrey[300],
  590. codeLineEllipsisHover: secondary.dark,
  591. codeLineLocationMarker: COLORS.red[900],
  592. codeLineLocationMarkerSelected: COLORS.red[900],
  593. codeLineIssueMessageTooltip: COLORS.blueGrey[25],
  594. // code snippet
  595. codeSnippetHighlight: danger.default,
  596. // checkbox
  597. checkboxDisabled: secondary.default,
  598. // input search
  599. searchHighlight: secondary.darker,
  600. // input field
  601. inputBackground: secondary.darker,
  602. inputDisabled: COLORS.blueGrey[300],
  603. // tooltip
  604. tooltipBackground: secondary.light,
  605. // badges
  606. badgeNew: COLORS.indigo[900],
  607. badgeDefault: COLORS.blueGrey[700],
  608. badgeDeleted: COLORS.red[900],
  609. badgeCounter: secondary.darker,
  610. badgeCounterFailed: danger.dark,
  611. // pills
  612. pillDanger: COLORS.red[800],
  613. pillDangerIcon: COLORS.red[700],
  614. pillWarning: COLORS.yellow[800],
  615. pillWarningIcon: COLORS.yellow[700],
  616. pillInfo: COLORS.blue[800],
  617. pillInfoIcon: COLORS.blue[700],
  618. pillAccent: COLORS.indigo[500],
  619. // project cards
  620. overviewCardDefaultIcon: COLORS.blueGrey[500],
  621. overviewCardWarningIcon: COLORS.yellow[700],
  622. overviewCardErrorIcon: COLORS.red[500],
  623. overviewCardSuccessIcon: COLORS.green[500],
  624. // breadcrumbs
  625. breadcrumb: secondary.dark,
  626. // discreet select
  627. discreetBackground: secondary.darker,
  628. discreetHover: secondary.darker,
  629. // interactive icons
  630. interactiveIcon: primary.dark,
  631. interactiveIconHover: COLORS.indigo[800],
  632. bannerIcon: danger.darker,
  633. bannerIconHover: danger.darker,
  634. destructiveIcon: danger.default,
  635. destructiveIconHover: danger.darker,
  636. // icons
  637. iconSeverityMajor: COLORS.white,
  638. iconSeverityMinor: COLORS.white,
  639. iconSeverityInfo: COLORS.white,
  640. iconStatusResolved: COLORS.white,
  641. iconHelperHint: secondary.darker,
  642. iconHelperHintRaised: COLORS.white,
  643. // numbered list
  644. numberedList: COLORS.indigo[800],
  645. // product news
  646. productNews: secondary.darker,
  647. productNewsHover: secondary.darker,
  648. // scrollbar
  649. scrollbar: COLORS.grey[100],
  650. // size indicators
  651. sizeIndicator: COLORS.white,
  652. // rating colors
  653. 'rating.A': COLORS.green[900],
  654. 'rating.B': COLORS.yellowGreen[900],
  655. 'rating.C': COLORS.yellow[900],
  656. 'rating.D': COLORS.orange[900],
  657. 'rating.E': COLORS.red[900],
  658. // date picker
  659. datePicker: COLORS.blueGrey[300],
  660. datePickerDisabled: COLORS.blueGrey[300],
  661. datePickerDefault: COLORS.blueGrey[600],
  662. datePickerHover: COLORS.blueGrey[600],
  663. datePickerSelected: COLORS.white,
  664. datePickerRange: COLORS.blueGrey[600],
  665. // tags
  666. tag: secondary.darker,
  667. // quality gate indicator
  668. qgIndicatorPassed: COLORS.green[800],
  669. qgIndicatorFailed: danger.darker,
  670. qgIndicatorNotComputed: COLORS.blueGrey[800],
  671. // main bar
  672. mainBar: secondary.darker,
  673. mainBarLogo: COLORS.black,
  674. mainBarDarkLogo: COLORS.white,
  675. mainBarNews: secondary.darker,
  676. // navbar
  677. navbar: secondary.darker,
  678. // filterbar
  679. filterbar: secondary.darker,
  680. // facet
  681. facetKeyboardHint: secondary.darker,
  682. facetToggleActive: COLORS.white,
  683. facetToggleInactive: COLORS.white,
  684. // subnavigation sidebar
  685. subnavigation: secondary.darker,
  686. subnavigationExecutionFlow: COLORS.blueGrey[700],
  687. subnavigationHover: COLORS.blueGrey[700],
  688. subnavigationSubheading: secondary.dark,
  689. // footer
  690. footer: secondary.dark,
  691. // page
  692. pageBlock: secondary.darker,
  693. // graph - chart
  694. graphZoomHandleColor: COLORS.white,
  695. // progress bar
  696. coreConceptsProgressBar: primary.light,
  697. // issue box
  698. issueTypeIcon: COLORS.red[900],
  699. iconSeverityDisabled: COLORS.white,
  700. iconTypeDisabled: COLORS.white,
  701. // selection card
  702. selectionCardDisabled: secondary.dark,
  703. // bubble charts
  704. bubbleDefault: COLORS.blue[500],
  705. 'bubble.1': COLORS.green[500],
  706. 'bubble.2': COLORS.yellowGreen[500],
  707. 'bubble.3': COLORS.yellow[500],
  708. 'bubble.4': COLORS.orange[500],
  709. 'bubble.5': COLORS.red[500],
  710. // news bar
  711. newsBar: COLORS.blueGrey[600],
  712. newsContent: COLORS.blueGrey[500],
  713. newsTag: COLORS.blueGrey[500],
  714. roadmap: COLORS.blueGrey[600],
  715. roadmapContent: COLORS.blueGrey[500],
  716. // Keyboard hint
  717. keyboardHintKey: COLORS.blueGrey[500],
  718. },
  719. // predefined shadows
  720. shadows: {
  721. xs: [[0, 1, 2, 0, ...COLORS.blueGrey[700], 0.05]],
  722. sm: [
  723. [0, 1, 3, 0, ...COLORS.blueGrey[700], 0.05],
  724. [0, 1, 25, 0, ...COLORS.blueGrey[700], 0.05],
  725. ],
  726. md: [
  727. [0, 4, 8, -2, ...COLORS.blueGrey[700], 0.1],
  728. [0, 2, 15, -2, ...COLORS.blueGrey[700], 0.06],
  729. ],
  730. lg: [
  731. [0, 12, 16, -4, ...COLORS.blueGrey[700], 0.1],
  732. [0, 4, 6, -2, ...COLORS.blueGrey[700], 0.05],
  733. ],
  734. xl: [
  735. [15, 20, 24, -4, ...COLORS.blueGrey[700], 0.1],
  736. [0, 8, 8, -4, ...COLORS.blueGrey[700], 0.06],
  737. ],
  738. scrolling: [[0, 0, 8, 0, ...COLORS.blueGrey[700], 0.2]],
  739. },
  740. // predefined borders
  741. borders: {
  742. default: ['1px', 'solid', ...COLORS.grey[50]],
  743. active: ['4px', 'solid', ...primary.light],
  744. xsActive: ['3px', 'solid', ...primary.light],
  745. focus: ['4px', 'solid', ...secondary.default, OPACITY_20_PERCENT],
  746. heavy: ['2px', 'solid', ...COLORS.grey[50]],
  747. },
  748. avatar: {
  749. color: [
  750. COLORS.blueGrey[100],
  751. COLORS.indigo[100],
  752. COLORS.tangerine[100],
  753. COLORS.green[100],
  754. COLORS.yellowGreen[100],
  755. COLORS.yellow[100],
  756. COLORS.orange[100],
  757. COLORS.red[100],
  758. COLORS.blue[100],
  759. ],
  760. contrast: [
  761. COLORS.blueGrey[900],
  762. COLORS.indigo[900],
  763. COLORS.tangerine[900],
  764. COLORS.green[900],
  765. COLORS.yellowGreen[900],
  766. COLORS.yellow[900],
  767. COLORS.orange[900],
  768. COLORS.red[900],
  769. COLORS.blue[900],
  770. ],
  771. },
  772. // Theme specific icons and images
  773. images: {
  774. azure: 'azure.svg',
  775. bitbucket: 'bitbucket.svg',
  776. github: 'github.svg',
  777. gitlab: 'gitlab.svg',
  778. microsoft: 'microsoft.svg',
  779. 'cayc-1': 'cayc-1-light.gif',
  780. 'cayc-2': 'cayc-2-light.gif',
  781. 'cayc-3': 'cayc-3-light.svg',
  782. 'cayc-4': 'cayc-4-light.svg',
  783. 'new-code-1': 'new-code-1.svg',
  784. 'new-code-2': 'new-code-2-light.svg',
  785. 'new-code-3': 'new-code-3.gif',
  786. 'new-code-4': 'new-code-4.gif',
  787. 'new-code-5': 'new-code-5.png',
  788. 'pull-requests-1': 'pull-requests-1-light.gif',
  789. 'pull-requests-2': 'pull-requests-2-light.svg',
  790. 'pull-requests-3': 'pull-requests-3.svg',
  791. 'quality-gate-1': 'quality-gate-1.png',
  792. 'quality-gate-2a': 'quality-gate-2a.svg',
  793. 'quality-gate-2b': 'quality-gate-2b.png',
  794. 'quality-gate-2c': 'quality-gate-2c.png',
  795. 'quality-gate-3': 'quality-gate-3-light.svg',
  796. 'quality-gate-4': 'quality-gate-4.png',
  797. 'quality-gate-5': 'quality-gate-5.svg',
  798. // project configure page
  799. AzurePipe: '/images/alms/azure.svg',
  800. BitbucketPipe: '/images/alms/bitbucket.svg',
  801. BitbucketAzure: '/images/alms/azure.svg',
  802. BitbucketCircleCI: '/images/tutorials/circleci.svg',
  803. GitHubActions: '/images/alms/github.svg',
  804. GitHubCircleCI: '/images/tutorials/circleci.svg',
  805. GitHubTravis: '/images/tutorials/TravisCI-Mascot.png',
  806. GitLabPipeline: '/images/alms/gitlab.svg',
  807. },
  808. };