fb-theme.css 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. :root {
  2. --fb-bg-url: url('/fb-wallpaper/frappe.webp?v=20260306w');
  3. --fb-accent: #8caaee;
  4. --fb-accent-2: #ca9ee6;
  5. --fb-text: #c6d0f5;
  6. --fb-subtext: #a5adce;
  7. --fb-base: #303446;
  8. --fb-mantle: #292c3c;
  9. --fb-crust: #232634;
  10. --fb-surface: rgba(48, 52, 70, 0.78);
  11. --fb-surface-strong: rgba(41, 44, 60, 0.90);
  12. --fb-border: rgba(198, 208, 245, 0.20);
  13. }
  14. html,
  15. body {
  16. background: var(--fb-crust) !important;
  17. color: var(--fb-text) !important;
  18. overflow-x: hidden;
  19. }
  20. html::before {
  21. content: '';
  22. position: fixed;
  23. inset: 0;
  24. background:
  25. radial-gradient(circle at 15% 20%, color-mix(in srgb, var(--fb-accent-2) 28%, transparent), transparent 45%),
  26. radial-gradient(circle at 80% 15%, color-mix(in srgb, var(--fb-accent) 24%, transparent), transparent 40%),
  27. var(--fb-bg-url) center/cover no-repeat;
  28. opacity: 0.36;
  29. pointer-events: none;
  30. z-index: 0;
  31. }
  32. body::after {
  33. content: '';
  34. position: fixed;
  35. inset: 0;
  36. background: linear-gradient(180deg, color-mix(in srgb, var(--fb-crust) 82%, transparent), color-mix(in srgb, var(--fb-crust) 90%, transparent));
  37. pointer-events: none;
  38. z-index: 0;
  39. }
  40. #app,
  41. .v-application,
  42. .application {
  43. position: relative;
  44. z-index: 1;
  45. color: var(--fb-text) !important;
  46. }
  47. [class*='toolbar'],
  48. [class*='header'],
  49. .v-toolbar,
  50. .v-app-bar,
  51. header {
  52. background: var(--fb-surface-strong) !important;
  53. backdrop-filter: blur(10px);
  54. border-bottom: 1px solid var(--fb-border) !important;
  55. color: var(--fb-text) !important;
  56. }
  57. [class*='drawer'],
  58. .v-navigation-drawer,
  59. aside {
  60. background: color-mix(in srgb, var(--fb-mantle) 88%, transparent) !important;
  61. border-right: 1px solid var(--fb-border) !important;
  62. backdrop-filter: blur(10px);
  63. }
  64. main,
  65. .v-main,
  66. .v-sheet,
  67. .v-card,
  68. .v-table,
  69. .v-data-table,
  70. .v-table__wrapper,
  71. .v-list,
  72. #listing,
  73. #listing .item,
  74. #listing tr,
  75. #listing li,
  76. [class*='files'],
  77. [class*='list'],
  78. [class*='table'] {
  79. background: var(--fb-surface) !important;
  80. border-color: var(--fb-border) !important;
  81. color: var(--fb-text) !important;
  82. }
  83. .v-list-item,
  84. .v-data-table__tr,
  85. tr,
  86. #listing .item,
  87. [class*='item'],
  88. [class*='file'] {
  89. background: transparent !important;
  90. color: var(--fb-text) !important;
  91. border-radius: 10px !important;
  92. }
  93. .v-list-item:hover,
  94. .v-data-table__tr:hover,
  95. tr:hover,
  96. #listing .item:hover,
  97. [class*='item']:hover,
  98. [class*='file']:hover {
  99. background: color-mix(in srgb, var(--fb-accent) 14%, transparent) !important;
  100. }
  101. button,
  102. .v-btn,
  103. [type='button'],
  104. [type='submit'] {
  105. border-radius: 10px !important;
  106. border: 1px solid var(--fb-border) !important;
  107. color: var(--fb-text) !important;
  108. }
  109. .v-btn--variant-elevated,
  110. .v-btn--variant-flat,
  111. button.primary,
  112. button[class*='primary'] {
  113. background: linear-gradient(
  114. 135deg,
  115. color-mix(in srgb, var(--fb-accent) 92%, #fff 8%),
  116. color-mix(in srgb, var(--fb-accent-2) 92%, #fff 8%)
  117. ) !important;
  118. color: #1f2435 !important;
  119. border: none !important;
  120. font-weight: 650;
  121. }
  122. input,
  123. textarea,
  124. select,
  125. .v-field,
  126. .v-text-field,
  127. .v-input__control,
  128. .v-field__field,
  129. .v-field__input {
  130. background: color-mix(in srgb, var(--fb-base) 72%, transparent) !important;
  131. border: 1px solid var(--fb-border) !important;
  132. color: var(--fb-text) !important;
  133. border-radius: 10px !important;
  134. }
  135. input::placeholder,
  136. textarea::placeholder {
  137. color: var(--fb-subtext) !important;
  138. opacity: 1;
  139. }
  140. a,
  141. .v-link,
  142. [class*='link'] {
  143. color: var(--fb-accent) !important;
  144. }
  145. a:hover,
  146. .v-link:hover {
  147. color: var(--fb-accent-2) !important;
  148. }
  149. /* FB settings theme begin */
  150. .card,
  151. .card.floating,
  152. #dropdown,
  153. #file-selection,
  154. .overlay .card {
  155. background: color-mix(in srgb, var(--fb-mantle) 90%, transparent) !important;
  156. color: var(--fb-text) !important;
  157. border: 1px solid var(--fb-border) !important;
  158. box-shadow: 0 12px 28px rgba(0,0,0,.35) !important;
  159. }
  160. .card .card-title,
  161. .card .card-content,
  162. .card .card-action,
  163. .collapsible > label,
  164. .collapsible .collapse,
  165. table,
  166. table th,
  167. table td {
  168. color: var(--fb-text) !important;
  169. border-color: var(--fb-border) !important;
  170. }
  171. .button,
  172. .button--red,
  173. .button--blue,
  174. .button--flat,
  175. .card .action,
  176. #dropdown .action,
  177. #file-selection .action {
  178. background: color-mix(in srgb, var(--fb-base) 70%, transparent) !important;
  179. color: var(--fb-text) !important;
  180. border: 1px solid var(--fb-border) !important;
  181. box-shadow: none !important;
  182. }
  183. .button:hover,
  184. .card .action:hover,
  185. #dropdown .action:hover,
  186. #file-selection .action:hover {
  187. background: color-mix(in srgb, var(--fb-accent) 22%, transparent) !important;
  188. }
  189. .input,
  190. .input--textarea,
  191. .card input,
  192. .card select,
  193. .card textarea,
  194. .tusConditionalSettings input {
  195. background: color-mix(in srgb, var(--fb-base) 70%, transparent) !important;
  196. color: var(--fb-text) !important;
  197. border: 1px solid var(--fb-border) !important;
  198. }
  199. input::placeholder,
  200. textarea::placeholder {
  201. color: var(--fb-subtext) !important;
  202. }
  203. #dropdown {
  204. backdrop-filter: blur(8px);
  205. }
  206. .rules input[type='text'],
  207. .rules button,
  208. .card code {
  209. background: color-mix(in srgb, var(--fb-base) 60%, transparent) !important;
  210. color: var(--fb-text) !important;
  211. border-color: var(--fb-border) !important;
  212. }
  213. /* FB settings theme end */
  214. /* FB breadcrumb theme begin */
  215. .breadcrumbs,
  216. #breadcrumbs,
  217. header .breadcrumbs,
  218. main .breadcrumbs,
  219. #editor-container .breadcrumbs {
  220. display: flex !important;
  221. align-items: center !important;
  222. box-sizing: border-box !important;
  223. height: 3em !important;
  224. min-height: 3em !important;
  225. padding: 0 0.6em !important;
  226. margin: 0 0 0.45em 0 !important;
  227. background: color-mix(in srgb, var(--fb-mantle) 88%, transparent) !important;
  228. border: 1px solid var(--fb-border) !important;
  229. border-radius: 10px !important;
  230. color: var(--fb-text) !important;
  231. box-shadow: none !important;
  232. overflow: hidden !important;
  233. }
  234. .breadcrumbs > span,
  235. #breadcrumbs > span,
  236. #editor-container .breadcrumbs > span {
  237. display: inline-flex !important;
  238. align-items: center !important;
  239. min-height: 100% !important;
  240. max-width: 100% !important;
  241. gap: 2px !important;
  242. white-space: nowrap !important;
  243. }
  244. .breadcrumbs a,
  245. .breadcrumbs span,
  246. .breadcrumbs i,
  247. #breadcrumbs a,
  248. #breadcrumbs span,
  249. #breadcrumbs i,
  250. .breadcrumbs .action,
  251. #breadcrumbs .action {
  252. color: var(--fb-text) !important;
  253. line-height: 1 !important;
  254. }
  255. .breadcrumbs a,
  256. #breadcrumbs a,
  257. .breadcrumbs .action,
  258. #breadcrumbs .action {
  259. display: inline-flex !important;
  260. align-items: center !important;
  261. justify-content: center !important;
  262. height: 2.1em !important;
  263. padding: 0 0.35em !important;
  264. border-radius: 8px !important;
  265. box-sizing: border-box !important;
  266. }
  267. /* remove inner frame to avoid layered boxes in Home area */
  268. .breadcrumbs .action,
  269. #breadcrumbs .action,
  270. .breadcrumbs a,
  271. #breadcrumbs a {
  272. border: none !important;
  273. box-shadow: none !important;
  274. background: transparent !important;
  275. }
  276. .breadcrumbs a:hover,
  277. #breadcrumbs a:hover,
  278. .breadcrumbs .action:hover,
  279. #breadcrumbs .action:hover {
  280. background: color-mix(in srgb, var(--fb-accent) 18%, transparent) !important;
  281. color: var(--fb-accent-2) !important;
  282. }
  283. .breadcrumbs .chevron,
  284. #breadcrumbs .chevron,
  285. .breadcrumbs .home,
  286. #breadcrumbs .home {
  287. color: var(--fb-subtext) !important;
  288. }
  289. /* FB breadcrumb theme end */
  290. /* FB iconview theme begin */
  291. #listing.mosaic {
  292. padding-top: 0.6em !important;
  293. padding-left: 0.35em !important;
  294. padding-right: 0.35em !important;
  295. margin: 0 !important;
  296. }
  297. #listing.mosaic .item,
  298. #listing.mosaic.gallery .item {
  299. box-sizing: border-box !important;
  300. border: 1px solid var(--fb-border) !important;
  301. box-shadow: none !important;
  302. background: color-mix(in srgb, var(--fb-base) 58%, transparent) !important;
  303. overflow: hidden !important;
  304. }
  305. #listing.mosaic .item > div,
  306. #listing.mosaic.gallery .item > div {
  307. background: transparent !important;
  308. border: none !important;
  309. box-shadow: none !important;
  310. }
  311. #listing.mosaic .item div:last-of-type {
  312. width: calc(100% - 5.2em) !important;
  313. padding-right: 0.15em !important;
  314. }
  315. #listing.mosaic.gallery .item div:last-of-type {
  316. width: calc(100% - 1em) !important;
  317. border-top: 1px solid color-mix(in srgb, var(--fb-border) 70%, transparent) !important;
  318. background: color-mix(in srgb, var(--fb-mantle) 72%, transparent) !important;
  319. }
  320. /* FB iconview theme end */
  321. /* Search/toolbar hotfix (20260306x2) */
  322. #search #input input,
  323. header #search #input input {
  324. background: transparent !important;
  325. border: none !important;
  326. box-shadow: none !important;
  327. }
  328. #search #input {
  329. box-shadow: none !important;
  330. }
  331. header > div:last-child {
  332. margin-left: auto !important;
  333. }