novel-info.module.scss 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. .novel-wrap {
  2. @apply bg-cover bg-center overflow-hidden relative;
  3. @apply before:absolute before:inset-0 before:bg-gradient-to-b before:from-white/80 before:to-white/50;
  4. &::before {
  5. backdrop-filter: blur(8px);
  6. :global(.dark) & {
  7. @apply bg-gradient-to-b from-black/50 to-black/80;
  8. }
  9. }
  10. }
  11. .novel-container {
  12. @apply relative px-4 mx-auto;
  13. }
  14. .novel-info {
  15. @apply flex pb-5;
  16. .novel-info-cover {
  17. @apply w-24 flex-shrink-0 mr-4 self-start md:w-32 lg:w-56 lg:mr-10;
  18. }
  19. .nove-info-body {
  20. @apply w-0 flex-1 flex flex-col justify-between;
  21. h1 {
  22. @apply w-full text-xl font-bold md:text-3xl lg:text-4xl text-black;
  23. :global(.dark) & {
  24. @apply text-white;
  25. }
  26. small {
  27. @apply text-xs inline-block align-middle px-2 py-0.5 text-white rounded ml-2 bg-blue-600;
  28. }
  29. }
  30. h2 {
  31. @apply text-sm flex items-center whitespace-nowrap flex-wrap py-2 lg:text-xl;
  32. a,
  33. strong {
  34. @apply flex items-center mr-2 font-bold lg:mr-4;
  35. }
  36. svg {
  37. @apply w-4 h-4 mr-1 md:w-5 md:h-5 lg:w-8 lg:h-8;
  38. }
  39. }
  40. .btns {
  41. @apply flex flex-wrap gap-5 z-30 fixed bottom-10 left-0 w-full px-5 lg:static lg:px-0;
  42. }
  43. .button {
  44. @apply text-white text-center relative px-4 py-3 rounded-md lg:text-lg select-none bg-gradient-to-r from-blue-600 to-blue-800 transition-all flex flex-col justify-center items-center;
  45. @apply hover:after:absolute hover:after:inset-0 hover:after:bg-white/5 active:after:absolute active:after:inset-0 active:after:bg-white/5;
  46. &.button-reading {
  47. @apply w-0 flex-1 lg:w-auto lg:flex-none lg:max-w-md;
  48. }
  49. strong {
  50. @apply flex uppercase items-center justify-center text-center text-ellipsis overflow-hidden whitespace-nowrap;
  51. svg {
  52. @apply w-8 h-8 lg:mr-2;
  53. }
  54. span {
  55. @apply hidden lg:block;
  56. }
  57. }
  58. small {
  59. @apply block text-xs leading-3 opacity-70 w-full text-ellipsis overflow-hidden whitespace-nowrap;
  60. }
  61. :global(.dark) & {
  62. @apply from-blue-600 to-blue-900;
  63. }
  64. }
  65. }
  66. }
  67. .novel-text {
  68. @apply text-sm;
  69. p {
  70. @apply my-2;
  71. }
  72. }
  73. .chapter-list {
  74. @apply grid gap-y-4 lg:grid-cols-2 lg:gap-x-10 xl:grid-cols-3;
  75. // counter-reset: chapter attr(start);
  76. li {
  77. @apply text-sm lg:text-base border-b border-b-gray-100;
  78. :global(.dark) & {
  79. @apply border-b-gray-800;
  80. }
  81. a {
  82. @apply flex w-full h-full py-2 hover:bg-gray-50;
  83. :global(.dark) & {
  84. @apply hover:bg-gray-800;
  85. }
  86. &:hover {
  87. strong {
  88. text-decoration: underline;
  89. }
  90. }
  91. }
  92. i {
  93. @apply w-10 mr-1 flex-shrink-0 not-italic text-gray-400;
  94. }
  95. strong {
  96. @apply block font-normal flex-1;
  97. }
  98. time {
  99. @apply text-gray-400 ml-2;
  100. }
  101. }
  102. }
  103. .novel-page {
  104. @apply overflow-visible;
  105. }
  106. .novel-tabs {
  107. @apply mb-5 sticky top-[57px] backdrop-blur bg-white/60 -mx-4 px-4 scroll-px-4 lg:top-[65px] lg:mx-0 lg:px-0 lg:scroll-px-0;
  108. :global(.dark) & {
  109. @apply bg-gray-900/75;
  110. }
  111. &.chapter-tabs {
  112. @apply top-[106px] lg:top-[114px];
  113. }
  114. }