styles.module.css 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. /* Main container styles */
  2. .container {
  3. display: flex;
  4. flex-direction: column;
  5. align-items: center;
  6. justify-content: center;
  7. color: white;
  8. font-family: ui-sans-serif, system-ui, sans-serif;
  9. margin-top: 2rem;
  10. margin-bottom: 2rem;
  11. }
  12. .innerContainer {
  13. width: 100%;
  14. max-width: 56rem;
  15. margin: 0 auto;
  16. }
  17. /* Header styles */
  18. .header {
  19. text-align: center;
  20. margin-bottom: 2.5rem;
  21. }
  22. .title {
  23. font-size: 2.25rem;
  24. font-weight: 700;
  25. color: rgb(34 211 238);
  26. }
  27. .subtitle {
  28. font-size: 1.125rem;
  29. color: rgb(156 163 175);
  30. margin-top: 0.5rem;
  31. }
  32. /* Grid layout styles */
  33. .grid {
  34. display: grid;
  35. grid-template-columns: repeat(3, 1fr);
  36. gap: 1rem;
  37. align-items: center;
  38. text-align: center;
  39. }
  40. /* Block styles */
  41. .block {
  42. background-color: rgb(31 41 55);
  43. padding: 1.5rem;
  44. border-radius: 0.5rem;
  45. box-shadow:
  46. 0 10px 15px -3px rgb(0 0 0 / 0.1),
  47. 0 4px 6px -4px rgb(0 0 0 / 0.1);
  48. height: 100%;
  49. display: flex;
  50. flex-direction: column;
  51. justify-content: center;
  52. }
  53. .blockTitle {
  54. font-size: 1.125rem;
  55. font-weight: 600;
  56. color: rgb(34 211 238);
  57. margin-bottom: 0.5rem;
  58. }
  59. .challengeText {
  60. font-size: 0.875rem;
  61. color: rgb(209 213 219);
  62. word-break: break-all;
  63. font-family: ui-monospace, SFMono-Regular, monospace;
  64. }
  65. .combinedDataText {
  66. font-size: 0.875rem;
  67. color: rgb(156 163 175);
  68. word-break: break-all;
  69. font-family: ui-monospace, SFMono-Regular, monospace;
  70. }
  71. /* Nonce control styles */
  72. .nonceControls {
  73. display: flex;
  74. align-items: center;
  75. justify-content: center;
  76. gap: 1rem;
  77. }
  78. .nonceButton {
  79. background-color: rgb(55 65 81);
  80. border-radius: 9999px;
  81. padding: 0.5rem;
  82. transition: background-color 200ms;
  83. }
  84. .nonceButton:hover:not(:disabled) {
  85. background-color: rgb(34 211 238);
  86. }
  87. .nonceButton:disabled {
  88. opacity: 0.5;
  89. cursor: not-allowed;
  90. }
  91. .nonceValue {
  92. font-size: 1.5rem;
  93. font-family: ui-monospace, SFMono-Regular, monospace;
  94. width: 6rem;
  95. text-align: center;
  96. }
  97. /* Icon styles */
  98. .icon {
  99. height: 2rem;
  100. width: 2rem;
  101. }
  102. .iconGreen {
  103. height: 2rem;
  104. width: 2rem;
  105. color: rgb(74 222 128);
  106. }
  107. .iconRed {
  108. height: 2rem;
  109. width: 2rem;
  110. color: rgb(248 113 113);
  111. }
  112. .iconSmall {
  113. height: 1.5rem;
  114. width: 1.5rem;
  115. }
  116. .iconGray {
  117. height: 2.5rem;
  118. width: 2.5rem;
  119. color: rgb(75 85 99);
  120. animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  121. }
  122. /* Arrow animation */
  123. @keyframes pulse {
  124. 0%,
  125. 100% {
  126. opacity: 1;
  127. }
  128. 50% {
  129. opacity: 0.5;
  130. }
  131. }
  132. .arrowContainer {
  133. display: flex;
  134. justify-content: center;
  135. margin: 1.5rem 0;
  136. }
  137. /* Hash output styles */
  138. .hashContainer {
  139. padding: 1.5rem;
  140. border-radius: 0.5rem;
  141. box-shadow:
  142. 0 10px 15px -3px rgb(0 0 0 / 0.1),
  143. 0 4px 6px -4px rgb(0 0 0 / 0.1);
  144. transition: all 300ms;
  145. border: 2px solid;
  146. }
  147. .hashContainerSuccess {
  148. background-color: rgb(20 83 45 / 0.5);
  149. border-color: rgb(74 222 128);
  150. }
  151. .hashContainerError {
  152. background-color: rgb(127 29 29 / 0.5);
  153. border-color: rgb(248 113 113);
  154. }
  155. .hashContent {
  156. display: flex;
  157. flex-direction: column;
  158. align-items: center;
  159. justify-content: space-between;
  160. }
  161. .hashText {
  162. text-align: center;
  163. }
  164. .hashTextLg {
  165. text-align: left;
  166. }
  167. .hashValue {
  168. font-size: 0.875rem;
  169. word-break: break-all;
  170. }
  171. .hashValueLg {
  172. font-size: 1rem;
  173. word-break: break-all;
  174. }
  175. .hashIcon {
  176. margin-top: 1rem;
  177. }
  178. .hashIconLg {
  179. margin-top: 0;
  180. }
  181. /* Hash highlighting */
  182. .hashPrefix {
  183. font-family: ui-monospace, SFMono-Regular, monospace;
  184. }
  185. .hashPrefixGreen {
  186. color: rgb(74 222 128);
  187. }
  188. .hashPrefixRed {
  189. color: rgb(248 113 113);
  190. }
  191. .hashSuffix {
  192. font-family: ui-monospace, SFMono-Regular, monospace;
  193. color: rgb(156 163 175);
  194. }
  195. /* Button styles */
  196. .buttonContainer {
  197. margin-top: 2rem;
  198. display: flex;
  199. align-items: center;
  200. justify-content: center;
  201. gap: 1rem;
  202. }
  203. .button {
  204. font-weight: 700;
  205. padding: 0.75rem 1.5rem;
  206. border-radius: 0.5rem;
  207. transition: transform 150ms;
  208. }
  209. .button:hover {
  210. transform: scale(1.05);
  211. }
  212. .buttonCyan {
  213. background-color: rgb(8 145 178);
  214. color: white;
  215. }
  216. .buttonCyan:hover {
  217. background-color: rgb(6 182 212);
  218. }
  219. .buttonYellow {
  220. background-color: rgb(202 138 4);
  221. color: white;
  222. }
  223. .buttonYellow:hover {
  224. background-color: rgb(245 158 11);
  225. }
  226. .buttonIndigo {
  227. background-color: rgb(79 70 229);
  228. color: white;
  229. }
  230. .buttonIndigo:hover {
  231. background-color: rgb(99 102 241);
  232. }
  233. .buttonGray {
  234. background-color: rgb(55 65 81);
  235. color: white;
  236. }
  237. .buttonGray:hover {
  238. background-color: rgb(75 85 99);
  239. }
  240. /* Responsive styles */
  241. @media (min-width: 768px) {
  242. .title {
  243. font-size: 3rem;
  244. }
  245. .grid {
  246. grid-template-columns: repeat(3, 1fr);
  247. gap: 1rem;
  248. }
  249. .hashContent {
  250. flex-direction: row;
  251. }
  252. .hashText {
  253. text-align: left;
  254. }
  255. .hashValue {
  256. font-size: 1rem;
  257. }
  258. .hashIcon {
  259. margin-top: 0;
  260. }
  261. }
  262. @media (max-width: 767px) {
  263. .grid {
  264. display: flex;
  265. flex-direction: column;
  266. gap: 1rem;
  267. }
  268. }
  269. @media (prefers-color-scheme: light) {
  270. .block {
  271. background-color: oklch(93% 0.034 272.788);
  272. }
  273. .challengeText {
  274. color: oklch(12.9% 0.042 264.695);
  275. }
  276. .combinedDataText {
  277. color: oklch(12.9% 0.042 264.695);
  278. }
  279. .nonceButton {
  280. background-color: oklch(88.2% 0.059 254.128);
  281. }
  282. .nonceValue {
  283. color: oklch(12.9% 0.042 264.695);
  284. }
  285. .blockTitle {
  286. color: oklch(45% 0.085 224.283);
  287. }
  288. .hashContainerSuccess {
  289. background-color: oklch(95% 0.052 163.051);
  290. border-color: rgb(74 222 128);
  291. }
  292. .hashContainerError {
  293. background-color: oklch(94.1% 0.03 12.58);
  294. border-color: rgb(248 113 113);
  295. }
  296. .hashPrefixGreen {
  297. color: oklch(53.2% 0.157 131.589);
  298. font-weight: 600;
  299. }
  300. .hashPrefixRed {
  301. color: oklch(45.5% 0.188 13.697);
  302. }
  303. .hashSuffix {
  304. color: oklch(27.9% 0.041 260.031);
  305. }
  306. }