landing.scss 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632
  1. // Landing Page bundle
  2. @import "fonts";
  3. @import "lib/fontawesome";
  4. @import "lib/inter";
  5. @import "lib/manrope";
  6. @import 'variables';
  7. @import '~bootstrap/scss/bootstrap';
  8. @import 'custom';
  9. body {
  10. background: #080e2b;
  11. font-family: 'Manrope', sans-serif;
  12. color: #fff;
  13. }
  14. .bg-black {
  15. background-color: #080e2b;
  16. transition: background-color 0.3s ease;
  17. }
  18. .navbar {
  19. padding-top: 20px;
  20. padding-bottom: 20px;
  21. &-brand {
  22. display: flex;
  23. align-items: center;
  24. gap: 10px;
  25. span {
  26. font-weight: bold;
  27. font-size: 14px;
  28. display: none;
  29. @include media-breakpoint-up(sm) {
  30. display: block;
  31. font-size: 18px;
  32. }
  33. }
  34. }
  35. .nav-link {
  36. &.active {
  37. font-weight: bold;
  38. }
  39. }
  40. @include media-breakpoint-up(lg) {
  41. .nav-link {
  42. margin-right: 1rem !important;
  43. }
  44. }
  45. }
  46. .bg-bluegray {
  47. &-700 {
  48. background-color: #334155;
  49. }
  50. &-800 {
  51. background-color: #1e293b;
  52. }
  53. &-900 {
  54. background-color: #0f172a;
  55. }
  56. }
  57. .text-bluegray {
  58. &-400 {
  59. color: #94a3b8;
  60. }
  61. &-500 {
  62. color: #64748b;
  63. }
  64. &-600 {
  65. color: #475569;
  66. }
  67. }
  68. .page-wrapper {
  69. position: relative;
  70. padding-top: 3rem;
  71. padding-bottom: 3rem;
  72. min-height: 100vh !important;
  73. background-color: #212529 !important;
  74. background-image: url("/_landing/bg.jpg");
  75. background-size: cover !important;
  76. background-repeat: no-repeat !important;
  77. background-position: center !important;
  78. }
  79. .container-compact {
  80. max-width: 600px;
  81. margin-top: 3rem;
  82. padding-top: 3rem;
  83. padding-left: 0.25rem;
  84. padding-right: 0.25rem;
  85. @media (min-width: 768px) {
  86. padding-top: 0 !important;
  87. }
  88. }
  89. .overflow-hidden {
  90. overflow: hidden !important;
  91. }
  92. .bg-glass {
  93. background: rgba(255, 255, 255, 0.05);
  94. border-radius: 16px;
  95. box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  96. backdrop-filter: blur(5px);
  97. -webkit-backdrop-filter: blur(5px);
  98. border: 1px solid rgba(255, 255, 255, 0.05);
  99. margin-bottom: -1px;
  100. }
  101. .text-gradient-primary {
  102. background: linear-gradient(to right, #6366f1, #8B5CF6, #D946EF);
  103. -webkit-background-clip: text;
  104. -webkit-text-fill-color: transparent;
  105. }
  106. .gap-3 {
  107. gap: 3rem;
  108. }
  109. .btn-primary-alt {
  110. border: none;
  111. outline: none;
  112. color: white;
  113. position: relative;
  114. z-index: 1;
  115. cursor: pointer;
  116. background: none;
  117. text-shadow: 3px 3px 10px rgba(0,0,0,.45);
  118. &:before, &:after {
  119. position: absolute;
  120. top: 50%;
  121. left: 50%;
  122. border-radius: 10em;
  123. transform: translateX(-50%) translateY(-50%);
  124. width: 105%;
  125. height: 105%;
  126. content: '';
  127. z-index: -2;
  128. background-size: 400% 400%;
  129. background: linear-gradient(60deg, #f79533, #f37055, #ef4e7b, #a166ab, #5073b8, #1098ad, #07b39b, #6fba82);
  130. }
  131. &:before {
  132. filter: blur(7px);
  133. transition: all .25s ease;
  134. animation: pulse 10s infinite ease;
  135. }
  136. &:after {
  137. filter: blur(0.3px);
  138. }
  139. &:hover {
  140. &:before {
  141. width: 115%;
  142. height: 115%;
  143. }
  144. }
  145. }
  146. .opacity-50 {
  147. opacity: 50%;
  148. }
  149. .opacity-30 {
  150. opacity: 30%;
  151. }
  152. .nav-menu {
  153. border-bottom: 1px solid #334155;
  154. .nav-link {
  155. color: #94a3b8;
  156. position: relative;
  157. font-size: 12px;
  158. @media(min-width: 768px) {
  159. font-size: 16px;
  160. }
  161. &.active {
  162. color: #ffffff;
  163. font-weight: 600;
  164. }
  165. &.active:before,
  166. &.active:after,
  167. &.nav-item:hover:before,
  168. &.nav-item:hover:after {
  169. content: ' ';
  170. position: absolute;
  171. border: solid 10px transparent;
  172. border-bottom: solid 0px transparent;
  173. border-width: 10px;
  174. bottom: -12px;
  175. left: 50%;
  176. margin-left: -10px;
  177. border-color: transparent transparent #334155;
  178. }
  179. &.active:after,
  180. &.nav-item:hover:after {
  181. bottom: -14px;
  182. border-color: transparent transparent #0f172a;
  183. }
  184. }
  185. }
  186. .footer-component {
  187. padding: 3rem 1rem 1rem 1rem;
  188. &-links {
  189. display: flex;
  190. flex-direction: column;
  191. gap: 1rem;
  192. align-items: center;
  193. margin-bottom: 3rem;
  194. font-size: 15px;
  195. a {
  196. color: #94a3b8;
  197. font-weight: 700;
  198. text-transform: uppercase;
  199. }
  200. .spacer {
  201. display: none;
  202. @include media-breakpoint-up(md) {
  203. color: #64748b;
  204. display: block !important;
  205. }
  206. }
  207. }
  208. &-attribution {
  209. display: flex;
  210. flex-direction: column;
  211. gap: 0.5rem;
  212. align-items: center;
  213. color: #64748b;
  214. font-size: 13px;
  215. a {
  216. color: #64748b;
  217. font-weight: 700;
  218. }
  219. .spacer {
  220. display: none;
  221. @include media-breakpoint-up(md) {
  222. color: #64748b;
  223. display: block !important;
  224. }
  225. }
  226. }
  227. @include media-breakpoint-up(md) {
  228. padding: 3rem 0;
  229. &-links {
  230. margin-bottom: 1rem;
  231. flex-direction: row;
  232. justify-content: center;
  233. font-size: 13px;
  234. }
  235. &-attribution {
  236. flex-direction: row;
  237. justify-content: center;
  238. font-size: 11.5px;
  239. }
  240. }
  241. }
  242. .landing-index-component {
  243. width: 100%;
  244. overflow: hidden;
  245. .logo {
  246. margin-right: 10px;
  247. }
  248. h1 {
  249. color: var(--light);
  250. font-size: 4em;
  251. font-weight: bold;
  252. margin-bottom: 0;
  253. }
  254. p {
  255. color: var(--light);
  256. }
  257. .server-header {
  258. margin: 0 0 30px 0;
  259. &-domain {
  260. text-align: center;
  261. font-size: 25px;
  262. font-weight: 700;
  263. }
  264. &-attribution {
  265. font-size: 16px;
  266. text-align: center;
  267. color: #94a3b8;
  268. letter-spacing: 0.6px;
  269. a {
  270. color: #ffffff;
  271. font-weight: 800;
  272. }
  273. }
  274. }
  275. .server-stats {
  276. margin: 30px 0;
  277. .list-group {
  278. flex-direction: column;
  279. border-color: #1e293b;
  280. @media (min-width: 768px) {
  281. flex-direction: row;
  282. &-item {
  283. border-color: #1e293b;
  284. flex-grow: 1;
  285. border-top-width: 1px;
  286. border-left-width: 0;
  287. &:first-child {
  288. border-left-width: 1px;
  289. }
  290. &:last-child {
  291. border-top-right-radius: 0.25rem;
  292. border-bottom-left-radius: 0;
  293. }
  294. }
  295. }
  296. &-item {
  297. border-color: #1e293b;
  298. }
  299. }
  300. .stat-value {
  301. font-size: 20px;
  302. font-weight: 700;
  303. color: #ffffff;
  304. margin-bottom: 0;
  305. }
  306. .stat-label {
  307. font-size: 12px;
  308. font-weight: 700;
  309. color: #94a3b8;
  310. margin-bottom: 0;
  311. text-transform: uppercase;
  312. letter-spacing: 0.8px;
  313. }
  314. }
  315. .server-admin {
  316. margin: 30px 0;
  317. .list-group {
  318. flex-direction: column;
  319. border-color: #1e293b;
  320. @media (min-width: 768px) {
  321. flex-direction: row;
  322. &-item {
  323. border-color: #1e293b;
  324. flex-grow: 1;
  325. border-top-width: 1px;
  326. border-left-width: 0;
  327. &:first-child {
  328. border-left-width: 1px;
  329. }
  330. &:last-child {
  331. border-top-right-radius: 0.25rem;
  332. border-bottom-left-radius: 0;
  333. }
  334. }
  335. }
  336. &-item {
  337. border-color: #1e293b;
  338. }
  339. }
  340. .item-label {
  341. color: #94a3b8;
  342. text-transform: uppercase;
  343. font-weight: 500;
  344. letter-spacing: 1px;
  345. }
  346. .admin-card {
  347. text-decoration: none;
  348. .d-flex {
  349. gap: 10px;
  350. }
  351. .avatar {
  352. border-radius: 6px;
  353. }
  354. .user-info {
  355. .display-name {
  356. color: #94a3b8;
  357. }
  358. .username {
  359. font-weight: 700;
  360. }
  361. .display-name,
  362. .username {
  363. margin-bottom: 0;
  364. }
  365. }
  366. }
  367. .admin-email {
  368. color: #ffffff;
  369. font-size: 15px;
  370. font-weight: 700;
  371. text-decoration: none;
  372. }
  373. }
  374. .accordion {
  375. .btn-block {
  376. display: flex;
  377. justify-content: space-between;
  378. align-items: center;
  379. text-decoration: none;
  380. .h5 {
  381. margin-bottom: 0;
  382. }
  383. &:focus {
  384. box-shadow: none;
  385. }
  386. .far {
  387. color: #cbd5e1;
  388. }
  389. .text-white {
  390. .far {
  391. color: #94a3b8;
  392. }
  393. }
  394. }
  395. .about-text {
  396. padding: 40px 24px;
  397. p {
  398. font-size: 17px;
  399. }
  400. p:last-child {
  401. margin-bottom: 0;
  402. }
  403. }
  404. .list-group-rules {
  405. .list-group-item {
  406. display: flex;
  407. gap: 10px;
  408. align-items: center;
  409. border-color: #475569;
  410. .rule-id {
  411. color: #475569;
  412. font-size: 20px;
  413. }
  414. .rule-text {
  415. color: #fff;
  416. }
  417. }
  418. }
  419. .card-features {
  420. &-cloud {
  421. display: flex;
  422. flex-wrap: wrap;
  423. justify-content: center;
  424. gap: 10px;
  425. padding: 10px 5px;
  426. margin-bottom: 20px;
  427. .badge {
  428. font-size: 13px;
  429. font-weight: 400;
  430. padding: 5px 10px;
  431. &-success {
  432. background: #86efac30;
  433. }
  434. .far {
  435. margin-right: 5px;
  436. color: #22c55e;
  437. }
  438. }
  439. }
  440. .list-group-features {
  441. .list-group-item {
  442. display: flex;
  443. justify-content: space-between;
  444. align-items: center;
  445. border-color: #475569;
  446. .feature-label {
  447. font-size: 15px;
  448. }
  449. .fa-times-circle {
  450. color: #f43f5e;
  451. }
  452. .fa-check-circle {
  453. color: #22c55e;
  454. }
  455. }
  456. }
  457. }
  458. }
  459. }
  460. .landing-directory-component {
  461. .feed-list {
  462. display: flex;
  463. flex-direction: column;
  464. gap: 20px;
  465. }
  466. .landing-user-card {
  467. .display-name {
  468. a {
  469. @extend .text-bluegray-400;
  470. font-size: 12px;
  471. font-weight: 500;
  472. text-decoration: none;
  473. }
  474. }
  475. .username {
  476. margin-bottom: 2px;
  477. a {
  478. color: #fff;
  479. font-size: 18px;
  480. font-weight: 800;
  481. text-decoration: none;
  482. }
  483. }
  484. .user-stats {
  485. display: flex;
  486. justify-content: space-between;
  487. &-item {
  488. @extend .text-bluegray-500;
  489. font-size: 13px;
  490. font-weight: 600;
  491. }
  492. }
  493. .user-bio {
  494. @extend .bg-bluegray-700;
  495. margin-top: 1rem;
  496. padding: 15px;
  497. border-radius: 10px;
  498. }
  499. }
  500. }
  501. .landing-explore-component {
  502. .feed-list {
  503. display: flex;
  504. flex-direction: column;
  505. gap: 20px;
  506. .landing-post-card {
  507. a.text-bluegray-400 {
  508. &:hover {
  509. color: #cbd5e1;
  510. text-decoration: none;
  511. }
  512. }
  513. a.text-bluegray-500 {
  514. &:hover {
  515. color: #94a3b8;
  516. text-decoration: none;
  517. }
  518. }
  519. .read-more-component {
  520. color: #64748b;
  521. a {
  522. color: #94a3b8;
  523. font-weight: 600;
  524. }
  525. }
  526. }
  527. }
  528. }