Landing.css 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. .serverStatusWrapper-enter {
  2. opacity: 0;
  3. }
  4. .serverStatusWrapper-enter-active {
  5. opacity: 1;
  6. transition: opacity 500ms, transform 500ms;
  7. }
  8. .serverStatusWrapper-exit {
  9. opacity: 1;
  10. }
  11. .serverStatusWrapper-exit-active {
  12. opacity: 0;
  13. transition: opacity 500ms, transform 500ms;
  14. }
  15. /*******************************************************************************
  16. * *
  17. * Landing View (Structural Styles) *
  18. * *
  19. ******************************************************************************/
  20. /* Main content container. */
  21. #landingContainer {
  22. height: 100%;
  23. position: relative;
  24. transition: background 2s ease;
  25. overflow-y: hidden;
  26. }
  27. /* Upper content container. */
  28. #landingContainer > #upper {
  29. position: relative;
  30. transition: top 2s ease;
  31. top: 0;
  32. height: 77%;
  33. display: flex;
  34. }
  35. #landingContainer > #upper > #left {
  36. display: inline-flex;
  37. width: 15%;
  38. height: 100%;
  39. justify-content: flex-end;
  40. }
  41. #landingContainer > #upper > #content {
  42. display: inline-flex;
  43. width: 70%;
  44. height: 100%;
  45. }
  46. #landingContainer > #upper > #right {
  47. display: inline-flex;
  48. width: 15%;
  49. height: 100%;
  50. }
  51. /* Lower content container. */
  52. #landingContainer > #lower {
  53. height: 23%;
  54. display: flex;
  55. background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
  56. }
  57. #landingContainer > #lower > #left {
  58. position: relative;
  59. transition: top 2s ease;
  60. top: 0;
  61. height: 100%;
  62. width: 33%;
  63. display: inline-flex;
  64. justify-content: center;
  65. }
  66. #landingContainer > #lower > #left #content {
  67. position: relative;
  68. top: 25px;
  69. display: inline-flex;
  70. line-height: 24px;
  71. left: 50px;
  72. }
  73. #landingContainer > #lower > #center {
  74. position: relative;
  75. transition: top 2s ease;
  76. top: 0;
  77. height: 100%;
  78. width: 34%;
  79. display: inline-flex;
  80. justify-content: center;
  81. }
  82. #landingContainer > #lower > #center #content {
  83. position: relative;
  84. z-index: 500;
  85. transition: top 2s ease;
  86. top: 10px;
  87. }
  88. #landingContainer > #lower > #right {
  89. position: relative;
  90. transition: top 2s ease;
  91. top: 0;
  92. height: 100%;
  93. width: 33%;
  94. display: inline-flex;
  95. }
  96. /*******************************************************************************
  97. * *
  98. * Landing View (Top Styles) *
  99. * *
  100. ******************************************************************************/
  101. /* * *
  102. * Landing View (Top Styles) | Left Content
  103. * * */
  104. /* Logo image. */
  105. #image_seal {
  106. height: 70px;
  107. width: auto;
  108. position: relative;
  109. border: 2px solid white;
  110. box-sizing: border-box;
  111. border-radius: 50%;
  112. }
  113. /* Logo container styles. */
  114. #image_seal_container {
  115. position: relative;
  116. height: 70px;
  117. width: 70px;
  118. border-radius: 50%;
  119. margin-top: 50px;
  120. }
  121. /* Logo container styles w/ update. */
  122. #image_seal_container[update]{
  123. cursor: pointer
  124. }
  125. #image_seal_container[update]:before,
  126. #image_seal_container[update]:after {
  127. cursor: pointer;
  128. position: absolute;
  129. content: '';
  130. height: 100%;
  131. width: 100%;
  132. top: 0%;
  133. left: 0%;
  134. border-radius: 50%;
  135. box-shadow: 0 0 15px #43c628;
  136. animation: glow-grow 4s ease-out infinite;
  137. background: rgba(0, 0, 0, 0.15);
  138. }
  139. #image_seal_container[update]:before {
  140. animation-delay: 2s;
  141. }
  142. /* Update available tooltip styles. */
  143. #updateAvailableTooltip {
  144. cursor: pointer;
  145. visibility: hidden;
  146. opacity: 0;
  147. width: 100px;
  148. height: 15px;
  149. background-color: rgb(0, 0, 0);
  150. color: #fff;
  151. text-align: center;
  152. border-radius: 4px;
  153. padding: 2px;
  154. position: absolute;
  155. z-index: 1;
  156. top: 115%;
  157. left: -17.5px;
  158. font-family: 'Avenir Medium';
  159. font-size: 12px;
  160. transition: visibility 0s linear 0.25s, opacity 0.25s ease;
  161. }
  162. #updateAvailableTooltip::after {
  163. content: " ";
  164. position: absolute;
  165. left: 50%;
  166. bottom: 100%;
  167. margin-left: -5px;
  168. border-width: 5px;
  169. border-style: solid;
  170. border-color: transparent transparent rgb(0, 0, 0) transparent;
  171. }
  172. #image_seal_container[update]:hover #updateAvailableTooltip {
  173. visibility: visible;
  174. opacity: 1;
  175. transition-delay: 0s;
  176. }
  177. /* Update available animation. */
  178. @keyframes glow-grow {
  179. 0% {
  180. opacity: 0;
  181. transform: scale(1);
  182. }
  183. 80% {
  184. opacity: 1;
  185. }
  186. 100% {
  187. transform: scale(1.5);
  188. opacity: 0;
  189. }
  190. }
  191. /* * *
  192. * Landing View (Bottom Styles) | Right Content
  193. * * */
  194. /* Wrapper container for top, right content. */
  195. #rightContainer {
  196. display: flex;
  197. flex-direction: column;
  198. position: relative;
  199. top: 50px;
  200. align-items: flex-start;
  201. height: calc(100% - 50px);
  202. }
  203. /* Right hand user content container. */
  204. #user_content {
  205. display: flex;
  206. align-items: center;
  207. justify-content: center;
  208. box-sizing: border-box;
  209. position: relative;
  210. }
  211. /* User profile avatar container. */
  212. #avatarContainer {
  213. border-radius: 50%;
  214. border: 2px solid #cad7e1;
  215. box-sizing: border-box;
  216. background: rgba(1, 2, 1, 0.5);
  217. height: 70px;
  218. width: 70px;
  219. box-shadow: 0 0 10px 0 rgb(0, 0, 0);
  220. overflow: hidden;
  221. position: relative;
  222. background-position: center;
  223. background-repeat: no-repeat;
  224. background-size: contain;
  225. }
  226. /* Avatar edit overlay. */
  227. #avatarOverlay {
  228. opacity: 0;
  229. position: absolute;
  230. z-index: 1;
  231. display: flex;
  232. justify-content: center;
  233. align-items: center;
  234. transition: 0.25s ease;
  235. font-weight: bold;
  236. letter-spacing: 2px;
  237. background-color: rgba(0, 0, 0, 0.35);
  238. -webkit-user-select: none;
  239. border: none;
  240. cursor: pointer;
  241. width: 100%;
  242. height: 100%;
  243. border-radius: 50%;
  244. }
  245. #avatarOverlay:hover,
  246. #avatarOverlay:focus {
  247. opacity: 1;
  248. }
  249. #avatarOverlay:active {
  250. background-color: rgba(0, 0, 0, 0.45);
  251. }
  252. /* User profile name text. */
  253. #user_text {
  254. font-size: 12px;
  255. min-width: 135px;
  256. font-weight: 900;
  257. letter-spacing: 1px;
  258. text-shadow: 0 0 20px black;
  259. position: absolute;
  260. right: 95px;
  261. text-align: right;
  262. -webkit-user-select: initial;
  263. }
  264. /* Social media icon content container. */
  265. #mediaContent {
  266. position: relative;
  267. display: flex;
  268. flex-direction: column;
  269. margin-top: 25px;
  270. height: calc(100% - 95px);
  271. width: 70px;
  272. align-items: center;
  273. }
  274. /* Social Media Icon division containers. */
  275. #internalMedia, #externalMedia {
  276. display: flex;
  277. flex-direction: column;
  278. }
  279. /* Container object which wraps an icon to ensure fluid transitions. */
  280. .mediaContainer {
  281. display: flex;
  282. justify-content: center;
  283. align-items: center;
  284. height: 27px;
  285. }
  286. /* Divider bar between the external and internal icons. */
  287. .mediaDivider {
  288. height: 1px;
  289. width: 14px;
  290. background: rgb(255, 255, 255);
  291. margin: 10px 0;
  292. }
  293. /* Social media icon shared styles. */
  294. .mediaSVG {
  295. fill: #ffffff;
  296. height: 12px;
  297. transition: 0.25s ease;
  298. cursor: pointer;
  299. height: 12px;
  300. width: 25px;
  301. }
  302. .mediaSVG:hover,
  303. .mediaURL:focus .mediaSVG,
  304. .mediaSVG:active {
  305. height: 20px;
  306. }
  307. /* Social media URL shared styles. */
  308. .mediaURL {
  309. outline: none;
  310. }
  311. /* Internal media button shared styles. */
  312. .mediaButton {
  313. background: none;
  314. border: none;
  315. padding: 0;
  316. display: flex;
  317. align-items: center;
  318. outline: none;
  319. }
  320. #settingsMediaContainer {
  321. position: relative;
  322. }
  323. /* Settings icon colors. */
  324. #settingsSVG {
  325. stroke: #ffffff;
  326. height: 15px;
  327. }
  328. .mediaButton:hover #settingsSVG,
  329. .mediaButton:focus #settingsSVG,
  330. .mediaButton:active #settingsSVG {
  331. height: 23px;
  332. }
  333. /* Settings tooltip styles. */
  334. #settingsTooltip {
  335. visibility: hidden;
  336. opacity: 0;
  337. width: 75px;
  338. height: 20px;
  339. background-color: rgba(0, 0, 0, 0.75);
  340. text-align: center;
  341. border-radius: 4px;
  342. position: absolute;
  343. z-index: 1;
  344. right: 130%;
  345. font-size: 12px;
  346. line-height: 20px;
  347. transition: visibility 0s linear 0.25s, opacity 0.25s ease;
  348. }
  349. #settingsTooltip::after {
  350. content: " ";
  351. position: absolute;
  352. top: 50%;
  353. left: 100%;
  354. margin-top: -5px;
  355. border-width: 5px;
  356. border-style: solid;
  357. border-color: transparent transparent transparent rgba(0, 0, 0, 0.75);
  358. }
  359. .mediaButton:hover #settingsTooltip,
  360. .mediaButton:focus #settingsTooltip,
  361. .mediaButton:active #settingsTooltip {
  362. visibility: visible;
  363. opacity: 1;
  364. transition-delay:0s;
  365. }
  366. /* Twitter icon colors. */
  367. #twitterSVG:hover,
  368. #twitterURL:focus #twitterSVG {
  369. fill: #1da1f2;
  370. }
  371. #twitterSVG:active {
  372. fill: #1b8dd4;
  373. }
  374. /* Instagram icon colors. */
  375. #instagramSVG:hover,
  376. #instagramURL:focus #instagramSVG {
  377. fill: url('#instaFill')
  378. /*fill: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); */
  379. }
  380. #instagramSVG:active {
  381. fill: url('#instaFill')
  382. }
  383. /* Youtube icon colors. */
  384. #youtubeSVG:hover,
  385. #youtubeURL:focus #youtubeSVG {
  386. fill: #f00;
  387. }
  388. #youtubeSVG:active {
  389. fill: #ea0202;
  390. }
  391. /* Discord icon colors. */
  392. #discordSVG:hover,
  393. #discordURL:focus #discordSVG {
  394. fill: #7288d9;
  395. }
  396. #discordSVG:active {
  397. fill: #657ac4;
  398. }
  399. /*******************************************************************************
  400. * *
  401. * Landing View (Bottom Styles) *
  402. * *
  403. ******************************************************************************/
  404. /* Style for a general label on the bottom of the landing view. */
  405. .bot_label {
  406. font-size: 9px;
  407. letter-spacing: 1px;
  408. font-weight: bold;
  409. text-shadow: 0 0 0 #bebcbb;
  410. }
  411. /* Divider used on the bottom of the landing view. */
  412. .bot_divider {
  413. height: 25px;
  414. width: 2px;
  415. background: rgba(107, 105, 105, 0.7);
  416. margin-left: 20px;
  417. margin-right: 20px;
  418. }
  419. /* * *
  420. * Landing View (Bottom Styles) | Left Content
  421. * * */
  422. /* Maintains maximum width on the status bar. */
  423. #server_status_wrapper {
  424. display: inline-flex;
  425. width: 75px;
  426. }
  427. /* Span which displays the player count of the selected server. */
  428. #player_count {
  429. color: #949494;
  430. font-size: 8px;
  431. font-weight: 900;
  432. text-shadow: 0 0 20px #949494;
  433. margin-left: 10px;
  434. }
  435. /* Wrapper container for the mojang status bar. */
  436. #mojangStatusWrapper {
  437. position: relative;
  438. display: flex;
  439. cursor: pointer;
  440. }
  441. /* Icon which displays the status of the mojang services. */
  442. #mojang_status_icon {
  443. font-size: 30px;
  444. color: #848484;
  445. margin-left: 15px;
  446. font-family: 'sans-serif';
  447. }
  448. /* Tooltip which displays more details about the mojang statuses. */
  449. #mojangStatusTooltip {
  450. position: absolute;
  451. visibility: hidden;
  452. opacity: 0;
  453. width: 145px;
  454. min-height: 150px;
  455. background-color: rgba(0, 0, 0, 0.75);
  456. color: #fff;
  457. border-radius: 4px;
  458. padding: 5px 10px;
  459. z-index: 1;
  460. font-family: 'Avenir Medium';
  461. font-size: 12px;
  462. transition: visibility 0s linear 0.25s, opacity 0.25s ease;
  463. bottom: calc(100% + 15px);
  464. transform: translateX(-50%);
  465. margin-left: 50%;
  466. box-shadow: 0 0 20px rgb(0, 0, 0);
  467. cursor: default;
  468. }
  469. #mojangStatusTooltip:after {
  470. content: " ";
  471. position: absolute;
  472. left: 50%;
  473. top: 100%;
  474. margin-left: -5px;
  475. border-width: 5px;
  476. border-style: solid;
  477. border-color: rgba(0, 0, 0, 0.75) transparent transparent transparent;
  478. }
  479. #mojangStatusWrapper:hover #mojangStatusTooltip {
  480. visibility: visible;
  481. opacity: 1;
  482. transition-delay: 0s;
  483. }
  484. /* Tooltip title for the mojang statuses. */
  485. #mojangStatusTooltipTitle {
  486. width: 100%;
  487. text-align: center;
  488. margin-bottom: 5px;
  489. letter-spacing: 1px;
  490. }
  491. /* Wrapper container for the non essential services title. */
  492. #mojangStatusNEContainer {
  493. display: flex;
  494. align-items: center;
  495. margin: 10px 0;
  496. }
  497. /* White bar which surrounds the non essential service title. */
  498. .mojangStatusNEBar {
  499. height: 1px;
  500. width: 100%;
  501. background: white;
  502. }
  503. /* Non essential service title text. */
  504. #mojangStatusNETitle {
  505. font-size: 10px;
  506. padding: 0 3px;
  507. text-align: center;
  508. letter-spacing: 1px;
  509. }
  510. /* Wrapper container for mojang service information. */
  511. .mojangStatusContainer {
  512. display: flex;
  513. }
  514. /* Displays the name of the mojang service. */
  515. .mojangStatusName {
  516. width: 100%;
  517. font-size: 10px;
  518. letter-spacing: 1px;
  519. line-height: 12px;
  520. padding: 6px 0;
  521. }
  522. /* Displays the status of the mojang service. */
  523. .mojangStatusIcon {
  524. margin-right: 10px;
  525. font-size: 18.5px;
  526. color: #848484;
  527. }
  528. /* * *
  529. * Landing View (Bottom Styles) | Center Content
  530. * * */
  531. /* Button which opens the news view. */
  532. #newsButton {
  533. background: none;
  534. border: none;
  535. cursor: pointer;
  536. outline: none;
  537. }
  538. #newsButton:hover #newsButtonText,
  539. #newsButton:focus #newsButtonText {
  540. text-shadow: 0 0 20px #fff, 0 0 20px #fff;
  541. }
  542. #newsButton:active {
  543. color: #c7c7c7;
  544. text-shadow: 0 0 20px #c7c7c7, 0 0 20px #c7c7c7;
  545. }
  546. #newsButton:hover #newsButtonSVG,
  547. #newsButton:focus #newsButtonSVG {
  548. filter: drop-shadow(0px 0 2px #fff);
  549. -webkit-filter: drop-shadow(0px 0 2px #fff);
  550. }
  551. #newsButton:active #newsButtonSVG .arrowLine {
  552. stroke: #c7c7c7;
  553. }
  554. #newsButton:active #newsButtonSVG {
  555. filter: drop-shadow(0px 0 2px #c7c7c7);
  556. -webkit-filter: drop-shadow(0px 0 2px #c7c7c7);
  557. }
  558. #newsButton:disabled #newsButtonSVG .arrowLine {
  559. stroke: rgba(255, 255, 255, 0.75);
  560. }
  561. /* Icon which indicates there is new news. */
  562. #newsButtonAlert {
  563. width: 5px;
  564. height: 5px;
  565. position: absolute;
  566. border-radius: 50%;
  567. background: red;
  568. right: -1px;
  569. top: 50%;
  570. }
  571. /* Arrow image which floats above the news button. */
  572. #newsButtonSVG {
  573. height: 11px;
  574. margin-left: -2px;
  575. transition: 0.25s ease;
  576. }
  577. /* Span which contains the news button text. */
  578. #newsButtonText {
  579. color: white;
  580. font-weight: 900;
  581. letter-spacing: 2px;
  582. text-shadow: 0 0 0 #bebcbb;
  583. font-size: 11px;
  584. line-height: 30px;
  585. display: flex;
  586. transition: 0.25s ease;
  587. }
  588. /* * *
  589. * Landing View (Bottom Styles) | Right Content
  590. * * */
  591. /* Main launch content container. */
  592. #landingContainer > #lower > #right #launch_content {
  593. position: relative;
  594. top: 25px;
  595. display: inline-flex;
  596. }
  597. /* The launch button. */
  598. #launch_button {
  599. background: none;
  600. border: none;
  601. cursor: pointer;
  602. font-weight: 900;
  603. letter-spacing: 2px;
  604. text-shadow: 0 0 0 #bebcbb;
  605. font-size: 20px;
  606. padding: 0;
  607. transition: 0.25s ease;
  608. outline: none;
  609. }
  610. #launch_button:hover,
  611. #launch_button:focus {
  612. text-shadow: 0 0 20px #fff, 0 0 20px #fff;
  613. }
  614. #launch_button:active {
  615. color: #c7c7c7;
  616. text-shadow: 0 0 20px #c7c7c7, 0 0 20px #c7c7c7;
  617. }
  618. #launch_button:disabled {
  619. color: #c7c7c7;
  620. cursor: default;
  621. pointer-events: none;
  622. }
  623. /* Launch details main container, hidden until launch processing begins. */
  624. #launch_details {
  625. position: relative;
  626. top: 25px;
  627. display: none;
  628. }
  629. /* Left side of launch details container, displays percentage and a divider. */
  630. #launch_details_left {
  631. display: flex;
  632. }
  633. /* Span which displays percentage complete. */
  634. #launch_progress_label {
  635. font-weight: 900;
  636. letter-spacing: 1px;
  637. text-shadow: 0 0 0 #bebcbb;
  638. font-size: 20px;
  639. min-width: 53.21px;
  640. max-width: 53.21px;
  641. text-align: right;
  642. }
  643. /* Right side of launch details container, displays progress bar and details. */
  644. #launch_details_right {
  645. display: flex;
  646. flex-direction: column;
  647. justify-content: center;
  648. }
  649. /* Button which opens the server selection view. */
  650. #server_selection_button {
  651. background: none;
  652. border: none;
  653. outline: none;
  654. cursor: pointer;
  655. line-height: 24px;
  656. padding: 0;
  657. transition: 0.25s ease;
  658. }
  659. #server_selection_button:hover,
  660. #server_selection_button:focus {
  661. text-shadow: 0 0 20px #fff, 0 0 20px #fff, 0 0 20px #fff;
  662. }
  663. #server_selection_button:active {
  664. color: #c7c7c7;
  665. text-shadow: 0 0 20px #c7c7c7, 0 0 20px #c7c7c7, 0 0 20px #c7c7c7;
  666. }
  667. /* Progress bar styles. */
  668. #launch_progress[value] {
  669. height: 3px;
  670. width: 265px;
  671. -webkit-appearance: none;
  672. }
  673. #launch_progress[value]::-webkit-progress-bar {
  674. background-color: transparent;
  675. }
  676. #launch_progress[value]::-webkit-progress-value {
  677. background-color: #fff;
  678. }
  679. /* Span which displays information about the status of the launch process. */
  680. #launch_details_text {
  681. font-size: 11px;
  682. text-overflow: ellipsis;
  683. white-space: nowrap;
  684. overflow: hidden;
  685. }