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.

871 lines
17 KiB

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