style.scss 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810
  1. $bg: #131516;
  2. $bg-secondary: #222;
  3. $fg: #fff;
  4. $fg-secondary: #aaa;
  5. $link: #118bee;
  6. $highlight: #fc365b;
  7. $border-radius: 5px;
  8. $line-height: 1.5;
  9. $active-brightness: 0.85;
  10. $hover-brightness: 1.2;
  11. $box-shadow: 2px 2px 10px;
  12. $color-shadow: #bbbbbb20;
  13. $font-family: "Roboto", "Open Sans", "Noto Sans", sans-serif, "Noto Sans CJK JP";
  14. $small-artwork-width: 184px;
  15. $large-artwork-width: 288px;
  16. html {
  17. font-size: 62.5%;
  18. }
  19. body {
  20. top: 0;
  21. margin: 0;
  22. background-color: $bg;
  23. color: $fg;
  24. font-size: 1.8rem;
  25. font-family: $font-family;
  26. margin-bottom: 10px;
  27. margin-left: 5px;
  28. margin-right: 5px;
  29. }
  30. a {
  31. color: $link;
  32. text-decoration: none;
  33. }
  34. /* Scrollbars */
  35. * {
  36. scrollbar-width: thin;
  37. scrollbar-color: $link auto;
  38. }
  39. *::-webkit-scrollbar {
  40. width: 5px;
  41. height: 5px;
  42. }
  43. *::-webkit-scrollbar-track {
  44. background: transparent;
  45. }
  46. *::-webkit-scrollbar-thumb {
  47. background-color: $link;
  48. border-radius: 10px;
  49. }
  50. .special-symbol {
  51. display: inline-flex;
  52. align-items: center;
  53. justify-content: center;
  54. width: 1.8rem;
  55. height: 1.8rem;
  56. font-size: 1.8rem;
  57. }
  58. [hidden] {
  59. display: none;
  60. }
  61. input,
  62. label,
  63. select,
  64. textarea {
  65. display: block;
  66. font-size: inherit;
  67. max-width: 600px;
  68. }
  69. input[type="checkbox"],
  70. input[type="radio"] {
  71. display: inline-block;
  72. }
  73. input[type="checkbox"] + label,
  74. input[type="radio"] + label {
  75. display: inline-block;
  76. font-weight: normal;
  77. position: relative;
  78. top: 1px;
  79. }
  80. input[type="range"] {
  81. padding: 0.4rem 0;
  82. }
  83. input,
  84. select,
  85. textarea {
  86. border: 1px solid $bg-secondary;
  87. border-radius: $border-radius;
  88. margin-bottom: 1rem;
  89. padding: 0.4rem 0.8rem;
  90. }
  91. input[type="text"],
  92. textarea {
  93. width: calc(100% - 1.6rem);
  94. background-color: $bg-secondary;
  95. color: $fg-secondary;
  96. }
  97. input[readonly],
  98. textarea[readonly] {
  99. background-color: $bg-secondary;
  100. }
  101. label {
  102. font-weight: bold;
  103. margin-bottom: 0.2rem;
  104. }
  105. .form-field {
  106. border: 1px solid $bg-secondary;
  107. border-radius: $border-radius;
  108. box-shadow: $box-shadow $color-shadow;
  109. display: block;
  110. max-width: 800px;
  111. min-width: 460px;
  112. padding: 1.5rem;
  113. header {
  114. margin: 1.5rem 0;
  115. padding: 1.5rem 0;
  116. }
  117. }
  118. a b,
  119. a em,
  120. a i,
  121. a strong,
  122. button,
  123. input[type="submit"],
  124. .switch-button,
  125. .pagination-button {
  126. border-radius: $border-radius;
  127. display: inline-block;
  128. font-size: medium;
  129. font-weight: bold;
  130. line-height: $line-height;
  131. margin: 0.5rem 0;
  132. padding: 0.5rem 1rem;
  133. }
  134. button,
  135. input[type="submit"],
  136. .switch-button,
  137. .pagination-button {
  138. font-family: $font-family;
  139. }
  140. button:active,
  141. input[type="submit"]:active,
  142. .switch-button:active,
  143. .pagination-button:active {
  144. filter: brightness($active-brightness);
  145. }
  146. button:hover,
  147. input[type="submit"]:hover,
  148. .switch-button:hover,
  149. .pagination-button:hover {
  150. cursor: pointer;
  151. filter: brightness($hover-brightness);
  152. }
  153. a b,
  154. a strong,
  155. button,
  156. input[type="submit"],
  157. .switch-button,
  158. .pagination-button {
  159. background-color: $link;
  160. border: 2px solid $link;
  161. color: $fg;
  162. }
  163. input[type="submit"][hidden] {
  164. display: none;
  165. }
  166. .switch-seperator {
  167. display: inline-block;
  168. margin-left: 10px;
  169. }
  170. .pagination {
  171. text-align: center;
  172. .pagination-button {
  173. margin-right: 5px;
  174. }
  175. #highlight {
  176. filter: brightness($hover-brightness);
  177. }
  178. #disabled {
  179. pointer-events: none;
  180. background-color: $bg-secondary;
  181. filter: brightness(1);
  182. }
  183. }
  184. nav {
  185. margin-top: 15px;
  186. margin-bottom: 15px;
  187. margin-left: 20px;
  188. margin-right: 20px;
  189. .navigation-wrapper {
  190. display: flex;
  191. justify-content: space-between;
  192. align-items: center;
  193. width: auto;
  194. .navbar-brand {
  195. display: inline-flex;
  196. gap: 10px;
  197. span {
  198. font-weight: bold;
  199. font-size: 1.3em;
  200. color: $fg;
  201. }
  202. }
  203. .navbar-entry {
  204. img {
  205. width: 30px;
  206. height: 30px;
  207. }
  208. }
  209. .search-form {
  210. input {
  211. margin: 0;
  212. }
  213. }
  214. .sidebar-toggler {
  215. display: none;
  216. &:checked ~ .sidebar {
  217. transform: translateX(0);
  218. }
  219. }
  220. .sidebar-label {
  221. margin-right: 9px;
  222. cursor: pointer;
  223. }
  224. .sidebar {
  225. background-color: $bg;
  226. position: absolute;
  227. padding-top: 6px;
  228. left: 0;
  229. width: 220px;
  230. transform: translateX(-220px);
  231. transition: transform 250ms cubic-bezier(0.23, 1, 0.32, 1);
  232. z-index: 999;
  233. br {
  234. align-self: stretch;
  235. margin-top: 10px;
  236. }
  237. .sidebar-list {
  238. list-style-type: none;
  239. margin: 0;
  240. padding: 0;
  241. .sidebar-item {
  242. display: flex;
  243. align-items: center;
  244. list-style: none;
  245. color: $fg;
  246. font-size: 0.9em;
  247. text-decoration: none;
  248. padding: 10px;
  249. &:hover {
  250. background-color: $bg-secondary;
  251. }
  252. img {
  253. width: 30px;
  254. height: 30px;
  255. margin-left: 1.2rem;
  256. margin-right: 10px;
  257. }
  258. }
  259. }
  260. }
  261. }
  262. // .navbar-shadow {
  263. // width: 100%;
  264. // height: 10px;
  265. // background: repeating-linear-gradient(
  266. // 52.5deg,
  267. // rgba(32, 32, 32, 0.7),
  268. // rgba(32, 32, 32, 0.7) 14px,
  269. // rgba(240, 248, 255, 0) 14px,
  270. // rgba(240, 248, 255, 0) 28px
  271. // );
  272. // }
  273. }
  274. @media screen and (max-width: 600px) {
  275. nav {
  276. .search-form {
  277. display: none;
  278. }
  279. }
  280. }
  281. .component-header {
  282. display: flex;
  283. justify-content: space-between;
  284. align-items: center;
  285. h2 {
  286. margin: 0;
  287. display: inline-block;
  288. }
  289. }
  290. .container {
  291. max-width: 1200px;
  292. margin-left: auto;
  293. margin-right: auto;
  294. padding-left: 10px;
  295. padding-right: 10px;
  296. }
  297. .artwork-container {
  298. display: grid;
  299. grid-template-columns: repeat(
  300. auto-fit,
  301. minmax(calc($small-artwork-width + 15px), 1fr)
  302. );
  303. align-items: center;
  304. justify-items: center;
  305. }
  306. .artwork-container-scroll {
  307. display: flex;
  308. overflow: hidden;
  309. overflow-x: scroll;
  310. }
  311. .artwork-container,
  312. .artwork-container-scroll {
  313. a {
  314. text-decoration: none;
  315. color: $fg;
  316. }
  317. .artwork-large {
  318. img {
  319. width: $large-artwork-width;
  320. height: $large-artwork-width;
  321. }
  322. .artwork-title {
  323. max-width: $large-artwork-width;
  324. }
  325. .artwork-author {
  326. max-width: $large-artwork-width;
  327. a {
  328. max-width: $small-artwork-width;
  329. }
  330. }
  331. }
  332. .artwork-small {
  333. img {
  334. width: $small-artwork-width;
  335. height: $small-artwork-width;
  336. }
  337. .artwork-title {
  338. max-width: $small-artwork-width;
  339. }
  340. .artwork-author {
  341. max-width: $small-artwork-width;
  342. a {
  343. max-width: $small-artwork-width;
  344. }
  345. }
  346. }
  347. .artwork {
  348. padding: 5px;
  349. width: fit-content;
  350. position: relative;
  351. .artwork-additional {
  352. position: absolute;
  353. top: 4px;
  354. left: 4px;
  355. right: 4px;
  356. box-sizing: border-box;
  357. display: flex;
  358. align-items: flex-start;
  359. justify-content: space-between;
  360. padding: 4px 4px 0px;
  361. pointer-events: none;
  362. .artwork-position {
  363. display: flex;
  364. align-items: center;
  365. justify-content: center;
  366. border-radius: 50%;
  367. font-weight: bold;
  368. width: 40px;
  369. height: 40px;
  370. font-size: 16px;
  371. background-color: rgba(0, 0, 0, 0.32);
  372. }
  373. .artwork-profanity-label {
  374. display: flex;
  375. align-items: center;
  376. justify-content: center;
  377. font-size: 10px;
  378. border-radius: 20px;
  379. padding: 0.4rem;
  380. background-color: $highlight;
  381. color: $fg;
  382. }
  383. .artwork-page-count {
  384. display: flex;
  385. justify-content: center;
  386. align-items: center;
  387. flex: 0 0 auto;
  388. box-sizing: border-box;
  389. height: 20px;
  390. min-width: 20px;
  391. color: $fg;
  392. font-weight: bold;
  393. padding: 0px 6px;
  394. background: rgba(0, 0, 0, 0.32);
  395. border-radius: 10px;
  396. font-size: 10px;
  397. line-height: 10px;
  398. .boxbox {
  399. font-size: 9px;
  400. }
  401. }
  402. }
  403. img {
  404. object-fit: cover;
  405. object-position: center center;
  406. border-radius: $border-radius;
  407. }
  408. .artwork-title {
  409. display: flex;
  410. align-items: center;
  411. a {
  412. font-size: 14px;
  413. display: inline;
  414. overflow: hidden;
  415. text-overflow: ellipsis;
  416. white-space: nowrap;
  417. line-height: 22px;
  418. font-weight: bold;
  419. }
  420. }
  421. .artwork-author {
  422. display: flex;
  423. align-items: center;
  424. a {
  425. display: flex;
  426. align-items: center;
  427. img {
  428. aspect-ratio: 1/1;
  429. width: 24px;
  430. height: 24px;
  431. object-fit: cover;
  432. object-position: center top;
  433. border-radius: 50%;
  434. margin-right: 5px;
  435. }
  436. span {
  437. font-size: 14px;
  438. overflow: hidden;
  439. text-overflow: ellipsis;
  440. white-space: nowrap;
  441. line-height: 22px;
  442. }
  443. }
  444. }
  445. }
  446. }
  447. .illust {
  448. background-color: $bg-secondary;
  449. border-radius: $border-radius;
  450. padding: 5px 15px;
  451. .illust-images {
  452. display: flex;
  453. align-items: center;
  454. flex-direction: column;
  455. width: 100%;
  456. img {
  457. margin-top: 15px;
  458. max-height: 1000px;
  459. width: auto;
  460. max-width: 100%;
  461. }
  462. }
  463. .illust-attr {
  464. display: flex;
  465. align-items: center;
  466. margin-top: 10px;
  467. margin-bottom: 10px;
  468. .illust-avatar {
  469. width: 62px;
  470. height: 62px;
  471. border-radius: 50px;
  472. }
  473. .attr-wrap {
  474. margin-left: 5px;
  475. .illust-title {
  476. font-weight: bold;
  477. }
  478. .illust-author {
  479. font-size: 0.8em;
  480. a {
  481. color: $fg-secondary;
  482. }
  483. }
  484. }
  485. }
  486. .illust-description {
  487. font-size: 0.85em;
  488. }
  489. .illust-tags {
  490. font-size: 0.9em;
  491. .illust-tag-attr {
  492. display: inline-flex;
  493. align-items: center;
  494. margin-right: 15px;
  495. img {
  496. aspect-ratio: 1/1;
  497. width: 18px;
  498. height: 18px;
  499. margin-right: 5px;
  500. }
  501. }
  502. .illust-tag {
  503. margin-right: 10px;
  504. #highlight {
  505. color: $highlight;
  506. }
  507. .illust-tag-name {
  508. color: $link;
  509. font-weight: bold;
  510. margin-right: 5px;
  511. }
  512. }
  513. }
  514. .comment {
  515. display: flex;
  516. margin-bottom: 10px;
  517. p {
  518. margin: 0;
  519. font-size: 0.8em;
  520. }
  521. .comment-avatar {
  522. width: 40px;
  523. height: 40px;
  524. border-radius: 50%;
  525. margin-right: 10px;
  526. }
  527. .stamp {
  528. width: 96px;
  529. height: 96px;
  530. border-radius: 4px;
  531. }
  532. .emoji {
  533. width: 24px;
  534. height: 24px;
  535. margin-left: 3px;
  536. margin-right: 3px;
  537. }
  538. }
  539. .illust-other-works {
  540. & > a {
  541. display: inline-flex;
  542. align-items: center;
  543. text-decoration: none;
  544. color: $fg;
  545. & > img {
  546. aspect-ratio: 1/1;
  547. width: 50px;
  548. height: 50px;
  549. border-radius: 50%;
  550. margin-right: 5px;
  551. }
  552. }
  553. }
  554. }
  555. .background-cover {
  556. background: repeating-linear-gradient(
  557. 52.5deg,
  558. rgba(32, 32, 32, 0.8),
  559. rgba(32, 32, 32, 0.8) 14px,
  560. rgba(240, 248, 255, 0) 14px,
  561. rgba(240, 248, 255, 0) 28px
  562. );
  563. height: 10vw;
  564. min-height: 100px;
  565. overflow: hidden;
  566. padding-top: 10px;
  567. padding-bottom: 10px;
  568. img {
  569. width: 100%;
  570. height: 100%;
  571. object-fit: cover;
  572. }
  573. }
  574. #hasbg {
  575. height: 40vw;
  576. min-height: 100px;
  577. max-height: 60vh;
  578. }
  579. .user {
  580. transform: translateY(-8rem);
  581. .user-avatar {
  582. margin: auto;
  583. aspect-ratio: 1/1;
  584. width: 170px;
  585. height: 170px;
  586. img {
  587. border-radius: 50%;
  588. }
  589. }
  590. .user-social {
  591. text-align: center;
  592. img {
  593. aspect-ratio: 1/1;
  594. width: 36px;
  595. height: 36px;
  596. }
  597. }
  598. .user-details {
  599. text-align: center;
  600. h2 {
  601. margin: 0;
  602. }
  603. }
  604. }
  605. #calendar {
  606. width: 100%;
  607. height: auto;
  608. }
  609. .calendar-weeks,
  610. .calendar-board {
  611. max-width: 1000px;
  612. margin: 0 auto;
  613. display: flex;
  614. flex-wrap: wrap;
  615. gap: 5px;
  616. }
  617. .calendar-weeks div {
  618. width: 128px;
  619. text-align: center;
  620. }
  621. .calendar-node {
  622. width: 128px;
  623. height: 128px;
  624. border-radius: 8px;
  625. background-size: cover;
  626. background-position: center;
  627. background-color: $bg-secondary;
  628. position: relative;
  629. span {
  630. font-size: small;
  631. color: $fg;
  632. background-color: $bg-secondary;
  633. position: absolute;
  634. top: 0.3rem;
  635. left: 0.3rem;
  636. padding: 0.05rem 0.3rem;
  637. display: flex;
  638. align-items: center;
  639. justify-content: center;
  640. }
  641. }
  642. @media screen and (max-width: 950px) {
  643. .calendar-board {
  644. justify-content: center;
  645. }
  646. .calendar-weeks,
  647. .calendar-node-empty {
  648. display: none;
  649. }
  650. }
  651. .tag-header {
  652. display: flex;
  653. .tag-thumbnail {
  654. width: 120px;
  655. height: 120px;
  656. border-radius: 5px;
  657. margin-right: 20px;
  658. object-fit: cover;
  659. object-position: center center;
  660. }
  661. .tag-details {
  662. .main-tag {
  663. font-size: 1.6rem;
  664. }
  665. }
  666. }
  667. .tag-container {
  668. background-color: $bg-secondary;
  669. display: inline-flex;
  670. align-items: center;
  671. justify-content: center;
  672. padding-left: 20px;
  673. padding-right: 20px;
  674. margin-right: 10px;
  675. width: max-content;
  676. height: 40px;
  677. margin-bottom: 4px;
  678. text-align: center;
  679. font-weight: bold;
  680. font-size: 1rem;
  681. border-radius: 4px;
  682. .main {
  683. font-size: 1.6em;
  684. }
  685. .sub {
  686. font-size: 1.2em;
  687. font-weight: normal;
  688. }
  689. }