Mobile-responsive personal website, generated using Hugo. https://kevin-mok.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

923 lines
18 KiB

  1. /* Base16 Eighties Colorscheme by Chris Kempson (http://chriskempson.com) */
  2. // base colors {{{ //
  3. $base03: #747369;
  4. $base04: #a09f93;
  5. $base05: #d3d0c8;
  6. $base-red: #f2777a;
  7. $base-orange: #f99157;
  8. $base-yellow: #ffcc66;
  9. $base-green: #99cc99;
  10. $base-sky-blue: #66cccc;
  11. $base-blue: #6699cc;
  12. $base-violet: #cc99cc;
  13. $base-dark-orange: #d27b53;
  14. /* .base00 { color: #2d2d2d; }
  15. .base01 { color: #393939; }
  16. .base02 { color: #515151; }
  17. .base03 { color: #747369; }
  18. .base04 { color: #a09f93; }
  19. .base06 { color: #e8e6df; }
  20. .base07 { color: #f2f0ec; } */
  21. .base08 { color: $base-red; }
  22. .base09 { color: $base-orange; }
  23. .base0a { color: $base-yellow; }
  24. .base0b { color: $base-green; }
  25. .base0c { color: $base-sky-blue; }
  26. .base0d { color: $base-blue; }
  27. .base0e { color: $base-violet; }
  28. .base0f { color: $base-dark-orange; }
  29. // }}} base colors //
  30. // mixins {{{ //
  31. $max-page-width: 52em;
  32. $phone-width: 800px;
  33. @mixin side-padding-rem($n) {
  34. padding-left: $n * 1rem;
  35. padding-right: $n * 1rem;
  36. }
  37. @mixin vert-padding-rem($n) {
  38. padding-top: $n * 1rem;
  39. padding-bottom: $n * 1rem;
  40. }
  41. @mixin vert-margin-em($n) {
  42. margin-top: $n * 1em;
  43. margin-bottom: $n * 1em;
  44. }
  45. @mixin auto-center() {
  46. margin-left: auto;
  47. margin-right: auto;
  48. }
  49. @mixin article-body() {
  50. /* background-color: #e6e6fa; */
  51. background-color: #cbbeb5;
  52. color: #2d2d2d;
  53. @include side-padding-rem(8);
  54. @include vert-padding-rem(1);
  55. /* min-height: 50%; */
  56. /* min-height: 30em; */
  57. @media (max-width: $max-page-width) {
  58. @include side-padding-rem(2);
  59. }
  60. }
  61. @mixin a-color($color) {
  62. a {
  63. color: $color;
  64. &:visited {
  65. color: $color;
  66. }
  67. &:active {
  68. color: $color;
  69. }
  70. }
  71. }
  72. // }}} mixins //
  73. // general elements {{{ //
  74. $background-color: #2d2d2d;
  75. $color: #f2f0ec;
  76. // $background-color: white;
  77. // $color: black;
  78. body {
  79. margin: 0;
  80. background-color: $background-color;
  81. color: $color;
  82. line-height: 1.5;
  83. font-size: 100%;
  84. /* font-family: 'Source Code Pro', monospace; */
  85. font-family: 'Hack', monospace;
  86. display: flex;
  87. flex-direction: column;
  88. min-height: 100vh;
  89. @include a-color($base-sky-blue);
  90. }
  91. .container {
  92. max-width: $max-page-width;
  93. margin-left: auto;
  94. margin-right: auto;
  95. flex: 1;
  96. @media (max-width: $max-page-width) {
  97. width: 100%;
  98. }
  99. }
  100. div {
  101. .right {
  102. float:right;
  103. }
  104. .clearfix {
  105. overflow: auto;
  106. }
  107. }
  108. article {
  109. .single {
  110. section {
  111. @include article-body();
  112. }
  113. }
  114. }
  115. .article-list {
  116. article {
  117. @include article-body();
  118. }
  119. }
  120. header {
  121. margin-top: 1.5rem;
  122. margin-bottom: 1rem;
  123. @media (max-width: $max-page-width) {
  124. margin-top: 0;
  125. @include side-padding-rem(2);
  126. }
  127. }
  128. footer {
  129. margin-top: 2rem;
  130. margin-bottom: 1rem;
  131. text-align: center;
  132. font-size: 0.9em;
  133. color: #747369;
  134. // bottom: 0;
  135. // position: absolute;
  136. // width: 100%;
  137. .container {
  138. background-color: #393939;
  139. max-width: 62em;
  140. @include auto-center();
  141. @include vert-padding-rem(.1);
  142. }
  143. $vertical-margin: .2em;
  144. #copyright {
  145. position: relative;
  146. top: 2px;
  147. @include a-color(#747369);
  148. }
  149. #social-icons {
  150. position: relative;
  151. padding-left: 3px;
  152. img {
  153. height: 1.5em;
  154. @include vert-margin-em(.2);
  155. padding-left: .5em;
  156. opacity: .6;
  157. }
  158. }
  159. @media (max-width: $max-page-width) {
  160. margin-top: 0;
  161. margin-bottom: 0;
  162. }
  163. @media (max-width: $phone-width) {
  164. font-size: 0.8em;
  165. }
  166. }
  167. /* Typography */
  168. @for $i from 1 to 6 {
  169. h#{$i} {
  170. font-weight: bold;
  171. line-height: 1.25;
  172. margin-top: 1em;
  173. margin-bottom: .5em;
  174. }
  175. }
  176. p {
  177. margin-top: 0;
  178. margin-bottom: 1rem;
  179. }
  180. h1 { font-size: 2rem }
  181. h2 { font-size: 1.5rem }
  182. h3 { font-size: 1.25rem }
  183. h4 { font-size: 1rem }
  184. h5 { font-size: .875rem }
  185. h6 { font-size: .75rem }
  186. pre, code {
  187. font-family: inherit;
  188. font-size: inherit;
  189. }
  190. // }}} general elements //
  191. header {// {{{
  192. a {
  193. .path .path:visited {
  194. color: #6699cc;
  195. }
  196. }
  197. span {
  198. caret {
  199. color: #f2f0ec;
  200. }
  201. }
  202. }// }}}
  203. footer {// {{{
  204. @include a-color(#747369);
  205. }// }}}
  206. .page-not-found {// {{{
  207. h1 {
  208. text-align: center;
  209. font-size: 5em;
  210. }
  211. h2 {
  212. text-align: center;
  213. font-size: 3em;
  214. color: $base04;
  215. margin-bottom: 4rem;
  216. }
  217. @media (max-width: $max-page-width) {
  218. h1 {
  219. font-size: 3em;
  220. }
  221. h2 {
  222. font-size: 2em;
  223. }
  224. }
  225. }// }}}
  226. #homepage {// {{{
  227. #about {
  228. font-size: 1.25rem;
  229. h2 {
  230. margin-top: 1.25rem;
  231. font-size: 2rem;
  232. color: $base-yellow;
  233. text-align: center;
  234. // @media (max-width: $max-page-width) {
  235. // @include side-padding-rem(2);
  236. // }
  237. }
  238. .me-equation {
  239. margin-top: 3em;
  240. text-align: center;
  241. display: flex;
  242. // display: grid;
  243. // grid-template-columns: repeat(3, 2fr 1fr) 2fr;
  244. justify-content: center; /* align horizontal */
  245. align-items: center; /* align vertical */
  246. .equation-part {
  247. // width: 33%;
  248. display: flex;
  249. flex: 1;
  250. justify-content: center; /* align horizontal */
  251. align-items: center; /* align vertical */
  252. a {
  253. text-decoration: none;
  254. width: 70%;
  255. }
  256. img {
  257. // width: 7em;
  258. width: 70%;
  259. // width: 15vw;
  260. // min-width: 25%;
  261. // height: 25%;
  262. height: 100%;
  263. // height: auto;
  264. // height: 20vw;
  265. // object-fit: contain;
  266. // flex-basis: 20%;
  267. // flex: 2 2 0;
  268. // border-radius: 1.5em;
  269. border-radius: 1.1em;
  270. display: inline;
  271. &#gnu {
  272. background-color: $base04;
  273. // background-color: $base05;
  274. }
  275. }
  276. p {
  277. // font-size: 3rem;
  278. font-size: 3vw;
  279. // width: 20%;
  280. // flex: 1;
  281. // display: inline;
  282. display: inline-block;
  283. @include side-padding-rem(0.2);
  284. }
  285. }
  286. // @media (max-width: 800px) {// {{{
  287. @media (max-width: $phone-width) {
  288. // flex-direction: column;
  289. flex-wrap: wrap;
  290. margin-top: 2em;
  291. justify-content: space-around; /* align horizontal */
  292. // height: 100vh;
  293. // height: 50vh;
  294. .equation-part {
  295. // min-width: 50vw;
  296. // display: inline-block;
  297. // min-width: 50%;
  298. min-width: 33%;
  299. // max-height: 25vh;
  300. // flex-direction: column;
  301. img {
  302. // display: block;
  303. // width: 50%;
  304. flex: 1.5;
  305. // flex: 1;
  306. // height: 50%;
  307. // max-height: 30%;
  308. // max-height: 25vh;
  309. &#hexatar {
  310. // max-width: 70%;
  311. max-width: 20%;
  312. // max-height: 15vh;
  313. // margin-top: 2rem;
  314. margin-top: 1.75rem;
  315. }
  316. }
  317. p {
  318. // font-size: 3rem;
  319. font-size: 6vw;
  320. // width: 20%;
  321. flex: 1;
  322. // @include side-padding-rem(0.2);
  323. }
  324. &#uoft-part {
  325. justify-content: flex-end;
  326. }
  327. }
  328. }
  329. // @media (max-width: $phone-width) {
  330. // margin-top: 2em;
  331. // display: block;
  332. // p {
  333. // display: block;
  334. // @include vert-padding-rem(0.1);
  335. // margin-bottom: 0rem;
  336. // }
  337. // }
  338. }
  339. @media (max-width: $phone-width) {
  340. // font-size: 1.1em;
  341. font-size: .9em;
  342. h1 {
  343. // font-size: 1.75rem;
  344. font-size: 1.4rem;
  345. }
  346. }// }}}
  347. }
  348. @media (max-width: $max-page-width) {
  349. margin-bottom: 2rem;
  350. }
  351. }
  352. /* .homepage section.categories,
  353. .homepage section.tags {
  354. padding-left: 2rem;
  355. padding-right: 2rem;
  356. }
  357. .homepage .category,
  358. .homepage .category a,
  359. .homepage .tag,
  360. .homepage .tag a {
  361. color: #cc99cc;
  362. }
  363. .homepage .tag {
  364. margin-right: 2em;
  365. } */// }}}
  366. #print-icon {// {{{
  367. float: right;
  368. img {
  369. height: 1.75em;
  370. position: relative;
  371. top: 1em;
  372. }
  373. }// }}}
  374. #contact-info {// {{{
  375. @include vert-padding-rem(0.5);
  376. display: flex;
  377. align-content: center;
  378. div {
  379. flex-grow: 1;
  380. color: $base05;
  381. img {
  382. height: 1em;
  383. }
  384. }
  385. #email {
  386. text-align: center;
  387. }
  388. #website {
  389. text-align: right;
  390. }
  391. }// }}}
  392. #resume {// {{{
  393. a {
  394. text-decoration: none;
  395. &:hover {
  396. text-decoration: underline;
  397. }
  398. }
  399. h1 {
  400. color: $base-orange;
  401. }
  402. .date {
  403. float: right;
  404. color: $base03;
  405. }
  406. .project {
  407. @include vert-padding-rem(.2);
  408. h2 {
  409. color: $base-sky-blue;
  410. display: inline;
  411. }
  412. img {
  413. height: 1.2em;
  414. }
  415. .project-link {
  416. &:hover {
  417. text-decoration: none;
  418. }
  419. }
  420. .btn {
  421. display: inline;
  422. background-color: transparent;
  423. margin-bottom: 5px;
  424. padding-left: 7px;
  425. &:focus, &:active {
  426. outline: none !important;
  427. box-shadow: none;
  428. }
  429. }
  430. // [id^="details-"] {
  431. // margin-top: .5em;
  432. // }
  433. }
  434. }// }}}
  435. #server {// {{{
  436. .body {
  437. @include vert-padding-rem(.5);
  438. }
  439. h1 {
  440. margin-bottom: .25em;
  441. }
  442. // table {
  443. // margin-top: 1.75em;
  444. // }
  445. th, td {
  446. @include vert-padding-rem(.4);
  447. @include side-padding-rem(.5);
  448. border: 1px solid rgba(160, 159, 147, .5);
  449. }
  450. th {
  451. color: $base-orange;
  452. text-align: center;
  453. font-size: 1.3em;
  454. }
  455. td {
  456. font-size: .9em;
  457. }
  458. .description {
  459. font-size: .85em;
  460. }
  461. .status {
  462. text-align: center;
  463. img {
  464. height: 2em;
  465. }
  466. }
  467. #time-info {
  468. padding-top: 1em;
  469. font-size: .75em;
  470. font-style: italic;
  471. color: $base03;
  472. }
  473. }// }}}
  474. // TODO: converted up to here
  475. // hero {{{ //
  476. h1.site-title {// {{{
  477. text-align: center;
  478. /* font-size: 3.5em; */
  479. font-size: 4.8em;
  480. // color: #66cccc;
  481. color: $base05;
  482. margin-top: 1rem;
  483. margin-bottom: 0.5rem;
  484. @include a-color($base-sky-blue);
  485. a {
  486. text-decoration: none;
  487. }
  488. @media (max-width: $max-page-width) {
  489. font-size: 3em;
  490. }
  491. @media (max-width: $phone-width) {
  492. // font-size: 3em;
  493. // font-size: 2.5em;
  494. font-size: 2em;
  495. }
  496. }// }}}
  497. .hero-logo img {
  498. margin-top: 0.5rem;
  499. width: 100%;
  500. }
  501. .nav-bar {// {{{
  502. margin-left: .5em;
  503. // margin-bottom: 1em;
  504. // margin-top: .75em;
  505. @include vert-padding-rem(.5);
  506. .caret {
  507. color: #f2f0ec;
  508. margin-right: .75rem;
  509. }
  510. .nav-bar-links {
  511. display: inline;
  512. .nav-bar-link {
  513. padding-right: .5em;
  514. }
  515. }
  516. @media (max-width: $phone-width) {
  517. // font-size: .9em;
  518. font-size: .8em;
  519. }
  520. }// }}}
  521. .hero-tagline{// {{{
  522. margin-top: .3em;
  523. font-size: .8rem;
  524. // font-style: italic;
  525. text-align: center;
  526. .icon {
  527. width: 1.25rem;
  528. }
  529. }// }}}
  530. // }}} hero //
  531. // article-list {{{ //
  532. .article-list h1.list-title {
  533. font-size: 3em;
  534. color: #ffcc66;
  535. }
  536. .article-list article {
  537. padding-top: 4rem;
  538. padding-bottom: 4rem;
  539. margin-bottom: 4rem;
  540. }
  541. .article-list article h2.headline,
  542. .article-list article h2.headline a {
  543. margin-top: 0;
  544. color: #6699cc;
  545. }
  546. .article-list article .meta {
  547. margin-bottom: 1rem;
  548. }
  549. .article-list article .meta .key {
  550. color: #747369;
  551. }
  552. .article-list article .meta .val,
  553. .article-list article .meta .val a {
  554. color: #cc99cc;
  555. }
  556. .article-list article section.summary a { color: #d27b53; }
  557. // }}} article-list //
  558. // article.single {{{ //
  559. article.single {
  560. .meta {
  561. font-size: 0.9em;
  562. text-align: right;
  563. margin-top: .5rem;
  564. margin-bottom: .5rem;
  565. .key {
  566. color: #747369;
  567. }
  568. .val {
  569. color: #cc99cc;
  570. a {
  571. color: #cc99cc;
  572. }
  573. }
  574. }
  575. .body {
  576. padding-top: 1rem;
  577. padding-bottom: 3rem;
  578. }
  579. @media (max-width: $max-page-width) {
  580. .meta {
  581. padding-left: 2rem;
  582. padding-right: 2rem;
  583. }
  584. .body {
  585. padding-top: .5rem;
  586. padding-bottom: 1rem;
  587. }
  588. }
  589. }
  590. article.single h1.headline {
  591. margin-top: 0;
  592. font-size: 3em;
  593. color: #ffcc66;
  594. }
  595. @media (max-width: $max-page-width) {
  596. article.single h1.headline {
  597. font-size: 2em;
  598. padding-left: 2rem;
  599. padding-right: 2rem;
  600. }
  601. }
  602. /* Highlight Colors */
  603. article.single section.body h1 { color: #6699cc; }
  604. article.single section.body h2 { color: #99cc99; }
  605. article.single section.body h3 { color: #f99157; }
  606. article.single section.body h4 { color: #f2777a; }
  607. article.single section.body h5 { color: #515151; }
  608. article.single section.body h6 { color: #747369; }
  609. // article.single section.body a,a:visited { color: #a06700; }
  610. article.single section.body a,a:visited { color: $base-sky-blue; }
  611. /* Article Elements */
  612. article.single * {
  613. max-width: 100%;
  614. }
  615. article.single pre {
  616. margin-top: 0;
  617. margin-bottom: 1rem;
  618. // overflow-x: auto;
  619. border-radius: 3px;
  620. padding: 2rem;
  621. }
  622. article.single p code {
  623. padding: 0.2em 0.5em;
  624. border-radius: 3px;
  625. background: #747369;
  626. color: #f2f0ec;
  627. }
  628. article.single figure, article.single div.highlight {
  629. box-sizing: border-box;
  630. max-width: 52rem;
  631. width: 52rem;
  632. margin-bottom: 1rem;
  633. padding: 1em;
  634. background-color: #393939;
  635. }
  636. @media (max-width: $max-page-width) {
  637. article.single figure, article.single div.highlight {
  638. width: 100%;
  639. margin-left: 0;
  640. margin-right: 0;
  641. border-radius: 3px;
  642. }
  643. }
  644. article.single figure img {
  645. max-width: 100%;
  646. width: 100%;
  647. border-radius: 3px;
  648. }
  649. article.single figure figcaption {
  650. margin-top: 1rem;
  651. }
  652. article.single figure figcaption h4 {
  653. margin-top: 0;
  654. text-align: center;
  655. font-style: italic;
  656. font-weight: normal;
  657. color: #f2f0ec;
  658. }
  659. article.single table {
  660. border-collapse: separate;
  661. border-spacing: 0;
  662. max-width: 100%;
  663. width: 100%;
  664. }
  665. article.single th,
  666. article.single td {
  667. padding: .25rem 1rem;
  668. line-height: inherit;
  669. border-bottom-width: 1px;
  670. border-bottom-style: solid;
  671. border-bottom-color: $base04;
  672. }
  673. article.single tr:last-child td {
  674. border-bottom: 0;
  675. }
  676. article.single th {
  677. text-align: left;
  678. font-weight: bold;
  679. vertical-align: bottom;
  680. }
  681. article.single td { vertical-align: top }
  682. article.single blockquote {
  683. margin-left: 2rem;
  684. margin-right: 3rem;
  685. padding-left: 1rem;
  686. border-left: 5px solid #66cccc;
  687. }
  688. article.single hr {
  689. border: 0;
  690. border-bottom-style: solid;
  691. border-bottom-width: 1px;
  692. border-bottom-color: $base04;
  693. }
  694. // }}} article.single //
  695. // Pygments {{{ //
  696. pre { background: #2d2d2d; color: #f2f0ec }
  697. .highlight .hll { background-color: #515151 }
  698. .highlight .c { color: #747369 } /* Comment */
  699. .highlight .err { color: #f2777a } /* Error */
  700. .highlight .k { color: #cc99cc } /* Keyword */
  701. .highlight .l { color: #f99157 } /* Literal */
  702. .highlight .n { color: #f2f0ec } /* Name */
  703. .highlight .o { color: #66cccc } /* Operator */
  704. .highlight .p { color: #f2f0ec } /* Punctuation */
  705. .highlight .cm { color: #747369 } /* Comment.Multiline */
  706. .highlight .cp { color: #747369 } /* Comment.Preproc */
  707. .highlight .c1 { color: #747369 } /* Comment.Single */
  708. .highlight .cs { color: #747369 } /* Comment.Special */
  709. .highlight .gd { color: #f2777a } /* Generic.Deleted */
  710. .highlight .ge { font-style: italic } /* Generic.Emph */
  711. .highlight .gh { color: #f2f0ec; font-weight: bold } /* Generic.Heading */
  712. .highlight .gi { color: #99cc99 } /* Generic.Inserted */
  713. .highlight .gp { color: #747369; font-weight: bold } /* Generic.Prompt */
  714. .highlight .gs { font-weight: bold } /* Generic.Strong */
  715. .highlight .gu { color: #66cccc; font-weight: bold } /* Generic.Subheading */
  716. .highlight .kc { color: #cc99cc } /* Keyword.Constant */
  717. .highlight .kd { color: #cc99cc } /* Keyword.Declaration */
  718. .highlight .kn { color: #66cccc } /* Keyword.Namespace */
  719. .highlight .kp { color: #cc99cc } /* Keyword.Pseudo */
  720. .highlight .kr { color: #cc99cc } /* Keyword.Reserved */
  721. .highlight .kt { color: #ffcc66 } /* Keyword.Type */
  722. .highlight .ld { color: #99cc99 } /* Literal.Date */
  723. .highlight .m { color: #f99157 } /* Literal.Number */
  724. .highlight .s { color: #99cc99 } /* Literal.String */
  725. .highlight .na { color: #6699cc } /* Name.Attribute */
  726. .highlight .nb { color: #f2f0ec } /* Name.Builtin */
  727. .highlight .nc { color: #ffcc66 } /* Name.Class */
  728. .highlight .no { color: #f2777a } /* Name.Constant */
  729. .highlight .nd { color: #66cccc } /* Name.Decorator */
  730. .highlight .ni { color: #f2f0ec } /* Name.Entity */
  731. .highlight .ne { color: #f2777a } /* Name.Exception */
  732. .highlight .nf { color: #6699cc } /* Name.Function */
  733. .highlight .nl { color: #f2f0ec } /* Name.Label */
  734. .highlight .nn { color: #ffcc66 } /* Name.Namespace */
  735. .highlight .nx { color: #6699cc } /* Name.Other */
  736. .highlight .py { color: #f2f0ec } /* Name.Property */
  737. .highlight .nt { color: #66cccc } /* Name.Tag */
  738. .highlight .nv { color: #f2777a } /* Name.Variable */
  739. .highlight .ow { color: #66cccc } /* Operator.Word */
  740. .highlight .w { color: #f2f0ec } /* Text.Whitespace */
  741. .highlight .mf { color: #f99157 } /* Literal.Number.Float */
  742. .highlight .mh { color: #f99157 } /* Literal.Number.Hex */
  743. .highlight .mi { color: #f99157 } /* Literal.Number.Integer */
  744. .highlight .mo { color: #f99157 } /* Literal.Number.Oct */
  745. .highlight .sb { color: #99cc99 } /* Literal.String.Backtick */
  746. .highlight .sc { color: #f2f0ec } /* Literal.String.Char */
  747. .highlight .sd { color: #747369 } /* Literal.String.Doc */
  748. .highlight .s2 { color: #99cc99 } /* Literal.String.Double */
  749. .highlight .se { color: #f99157 } /* Literal.String.Escape */
  750. .highlight .sh { color: #99cc99 } /* Literal.String.Heredoc */
  751. .highlight .si { color: #f99157 } /* Literal.String.Interpol */
  752. .highlight .sx { color: #99cc99 } /* Literal.String.Other */
  753. .highlight .sr { color: #99cc99 } /* Literal.String.Regex */
  754. .highlight .s1 { color: #99cc99 } /* Literal.String.Single */
  755. .highlight .ss { color: #99cc99 } /* Literal.String.Symbol */
  756. .highlight .bp { color: #f2f0ec } /* Name.Builtin.Pseudo */
  757. .highlight .vc { color: #f2777a } /* Name.Variable.Class */
  758. .highlight .vg { color: #f2777a } /* Name.Variable.Global */
  759. .highlight .vi { color: #f2777a } /* Name.Variable.Instance */
  760. .highlight .il { color: #f99157 } /* Literal.Number.Integer.Long */
  761. /*# sourceMappingURL=style.css.map */
  762. // }}} Pygments //