Merge branch 'main' into main

This commit is contained in:
Emruz Hossain 2023-10-07 00:58:20 +06:00 committed by GitHub
commit d9d8fcf94b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
77 changed files with 3460 additions and 3721 deletions

View file

@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout to latest commit
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.0
- name: Setup Node
uses: actions/setup-node@v3

View file

@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
# checkout to the commit that has been pushed
- uses: actions/checkout@v3.5.3
- uses: actions/checkout@v4.1.0
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod

View file

@ -39,7 +39,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.1.0
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL

View file

@ -8,6 +8,6 @@ jobs:
runs-on: ubuntu-latest
steps:
# checkout to latest commit
- uses: actions/checkout@v3.5.3
- uses: actions/checkout@v4.1.0
# run markdown linter
- uses: gaurav-nelson/github-action-markdown-link-check@1.0.15

View file

@ -1,5 +1,3 @@
**Warning: This theme is going through a heavy re-write. The `main` branch contains some undocumented changes. Please, do not use `main` branch. Use latest release instead. We will release a new version once the re-write is done and the changes are documented.**
# Toha
[![Netlify Status](https://api.netlify.com/api/v1/badges/b1b93b02-f278-440b-ae1b-304e9f4c4ab5/deploy-status)](https://app.netlify.com/sites/toha/deploys)

View file

@ -1,8 +1,11 @@
import 'popper.js'
import 'bootstrap'
import '@fortawesome/fontawesome-free/js/all'
import feather from 'feather-icons'
import './core'
import './features'
import './sections'
import './pages'
feather.replace();

View file

@ -1,30 +0,0 @@
import { enable, disable, auto, setFetchMethod } from 'darkreader'
import * as params from '@params'
const darkreader = params?.darkmode?.darkreader || {}
const defaultColorScheme = darkreader.defaultcolorscheme || 'system'
const theme = {
brightness: 100,
contrast: 100,
sepia: 0,
...(darkreader.theme || {})
}
const fixes = {
invert: ['img[src$=".svg"]'],
...(darkreader.fixes || {})
}
setFetchMethod(window.fetch)
export function setSchemeDark () {
enable(theme, fixes)
}
export function setSchemeLight () {
disable()
}
export function setSchemeSystem () {
auto(theme, fixes)
}
export { defaultColorScheme }

View file

@ -1,14 +1,6 @@
const PERSISTENCE_KEY = 'darkmode:color-scheme'
async function getService () {
if (process.env.FEATURE_DARKMODE_DARKREADER === '1') {
return await import('./darkreader')
}
throw Error(' No service defined for feature darkMode.')
}
window.addEventListener('DOMContentLoaded', async () => {
window.addEventListener('load', async () => {
const menu = document.getElementById('themeMenu')
const $icon = document.getElementById('navbar-theme-icon-svg')
if (menu == null || $icon == null) return
@ -20,32 +12,32 @@ window.addEventListener('DOMContentLoaded', async () => {
return map
}, {})
const {
setSchemeDark,
setSchemeLight,
setSchemeSystem,
defaultColorScheme
} = await getService()
function loadScheme () {
return localStorage.getItem(PERSISTENCE_KEY) || defaultColorScheme
function loadScheme() {
return localStorage.getItem(PERSISTENCE_KEY) || "system"
}
function saveScheme (scheme) {
function saveScheme(scheme) {
localStorage.setItem(PERSISTENCE_KEY, scheme)
}
function setScheme (newScheme) {
function getPreferredColorScheme() {
const isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches;
return isDarkMode ? "dark" : "light";
}
function setScheme(newScheme) {
let theme = newScheme
if (newScheme === 'system') {
theme = getPreferredColorScheme()
}
// set data-theme attribute on html tag
document.querySelector("html").dataset.theme = theme;
// update icon
$icon.src = iconMap[newScheme]
if (newScheme === 'dark') {
setSchemeDark()
} else if (newScheme === 'system') {
setSchemeSystem()
} else {
setSchemeLight()
}
// save preference to local storage
saveScheme(newScheme)
}

View file

@ -4,14 +4,14 @@ const updateNavBar = () => {
const themeIcon = document.getElementById('navbar-theme-icon-svg')
if (window.scrollY > 40) {
topNavbar?.classList.remove('initial-navbar')
topNavbar?.classList.add('final-navbar', 'shadow')
topNavbar?.classList.remove('transparent-navbar')
topNavbar?.classList.add('shadow')
navbarToggler?.classList.remove('navbar-dark')
navbarToggler?.classList.add('navbar-light')
// color theme selector a.k.a. dark mode
themeIcon?.classList.remove('navbar-icon-svg-dark')
themeIcon?.classList.remove('svg-inverted')
// get the main logo from hidden img tag
const mainLogo = document.getElementById('main-logo')
@ -20,14 +20,14 @@ const updateNavBar = () => {
document.getElementById('logo')?.setAttribute('src', logoURL)
}
} else {
topNavbar?.classList.remove('final-navbar', 'shadow')
topNavbar?.classList.add('initial-navbar')
topNavbar?.classList.remove('shadow')
topNavbar?.classList.add('transparent-navbar')
navbarToggler?.classList.remove('navbar-light')
navbarToggler?.classList.add('navbar-dark')
// color theme selector a.k.a. dark mode
themeIcon?.classList.add('navbar-icon-svg-dark')
themeIcon?.classList.add('svg-inverted')
// get the inverted logo from hidden img tag
const invertedLogo = document.getElementById('inverted-logo')
@ -43,18 +43,20 @@ document.addEventListener('DOMContentLoaded', function () {
// ==================================================
// When the user scrolls down 80px from the top of the document,
// resize the navbar's padding and the logo's font size
document.addEventListener('scroll', updateNavBar)
const topNavbar = document.getElementById('top-navbar')
if (topNavbar?.classList.contains('homepage')) {
document.addEventListener('scroll', updateNavBar)
updateNavBar()
}
// Creates a click handler to collapse the navigation when
// anchors in the mobile nav pop up are clicked
const navMain =document.getElementsByClassName('navbar-collapse')
Array.from(navMain).forEach(function(el) {
const navMain = document.getElementsByClassName('navbar-collapse')
Array.from(navMain).forEach(function (el) {
el.addEventListener('click', function (e) {
if (e.target.tagName === 'A') {
el.classList.add('collapse')
}
})
})
updateNavBar()
})

View file

@ -6,19 +6,19 @@ function toggleSidebar () {
if (sidebar == null) {
return
}
if (sidebar.classList.contains('hide')) {
sidebar.classList.remove('hide')
if (sidebar.classList.contains('expanded')) {
sidebar.classList.remove('expanded')
} else {
// if toc-section is open, then close it first
const toc = document.getElementById('toc-section')
if (toc != null && toc.classList.contains('hide')) {
toc.classList.remove('hide')
}
// add "hide" class
sidebar.classList.add('hide')
// add "expanded" class
sidebar.classList.add('expanded')
// if it is mobile device. then scroll to top.
const { isMobile } = getDeviceState()
if (isMobile && sidebar.classList.contains('hide')) {
if (isMobile && sidebar.classList.contains('expanded')) {
document.body.scrollTop = 0
document.documentElement.scrollTop = 0
if (document.getElementById('hero-area') != null) {

View file

@ -2,6 +2,8 @@
// TODO: Refactor to use bootstrap sass variable for theming.
@import 'bootstrap/scss/bootstrap';
@import 'include-media/dist/_include-media';
// The Mulish font, we use font-weight 300 - 700
@import '@fontsource/mulish/300';
@import '@fontsource/mulish/index'; // 400
@ -9,6 +11,18 @@
@import '@fontsource/mulish/600';
@import '@fontsource/mulish/700';
@import './variables';
@import './mixins';
// components
@import './components/cards';
@import './components/buttons';
@import './components/links';
@import './components/texts';
@import './components/images';
@import './components/tables';
@import './components/misc';
// layouts
@import './layouts/main';
@import './layouts/list';
@ -32,6 +46,8 @@
@import './sections/achievements';
@import './sections/accomplishments';
@import './sections/publications';
@import './sections/footer';
// override
@ -61,4 +77,4 @@
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}

View file

@ -1,20 +0,0 @@
/* Note: No need to invert when the screen is small because the navbar is
collapsed to a hamburger menu. */
@media only screen and (min-width: 1200px) {
.dynamic-navbar .navbar-icon-svg-dark {
filter: invert(1);
};
}
@media only screen and (min-width: 1200px) {
.dropdown-menu-icons-only {
width: 25px;
min-width: 3rem;
}
}
.menu-icon-center {
display: block;
margin-left: auto;
margin-right: auto;
}

View file

@ -0,0 +1,174 @@
.btn-dark {
background-color: get-light-color('text-color') !important;
border-color: get-light-color('text-color') !important;
color: get-light-color('text-over-accent-color') !important;
@include transition();
&:hover,
&:focus {
background-color: get-light-color('accent-color') !important;
border-color: get-light-color('accent-color') !important;
@include transition();
}
}
.btn-info {
background-color: get-light-color('accent-color') !important;
color: get-light-color('text-over-accent-color') !important;
&:hover,
&:focus {
background-color: get-light-color('hover-over-accent-color') !important;
}
}
.btn-outline-info {
color: get-light-color('accent-color') !important;
border-color: get-light-color('accent-color') !important;
&:hover,
&:focus {
background-color: get-light-color('accent-color') !important;
color: get-light-color('text-over-accent-color') !important;
}
}
.btn-link {
color: get-light-color('accent-color');
&:hover,
&:focus {
color: get-light-color('hover-over-accent-color');
}
}
.nav-button {
background-color: transparent;
border: 1px solid transparent;
border-radius: 0.25rem;
color: get-light-color('muted-text-color');
}
.tags {
text-align: left;
li {
font-size: 0.5em;
list-style-type: none;
display: inline-block;
background: get-light-color('accent-color');
margin-left: 0.1em;
margin-right: 0.1em;
}
a {
color: get-light-color('text-over-accent-color');
text-decoration: none !important;
}
}
.icon-button {
background-color: get-light-color('text-color');
color: get-light-color('text-over-accent-color') !important;
padding: 0.25rem 0.5rem;
line-height: 1.5;
border-radius: 0.2rem;
border: none;
&:hover,
&:focus {
background-color: get-light-color('accent-color') !important;
@include transition();
}
}
.filled-button {
background-color: get-light-color('accent-color') !important;
color: get-light-color('text-over-accent-color') !important;
@include transition();
&:hover,
&:active {
background-color: get-light-color('hover-over-accent-color') !important;
@include transition();
}
}
html[data-theme='dark'] {
.btn-dark {
background-color: get-dark-color('accent-color') !important;
border-color: get-dark-color('accent-color') !important;
color: get-dark-color('text-over-accent-color') !important;
&:hover,
&:focus {
background-color: get-dark-color('hover-over-accent-color') !important;
border-color: get-dark-color('hover-over-accent-color') !important;
}
}
.btn-info {
background-color: get-dark-color('bg-card') !important;
color: get-dark-color('text-color') !important;
border: 1px solid get-dark-color('muted-text-color') !important;
&:hover,
&:focus {
background-color: get-dark-color('hover-over-accent-color') !important;
}
}
.btn-outline-info {
color: get-dark-color('accent-color') !important;
border-color: get-dark-color('accent-color') !important;
&:hover,
&:focus {
background-color: get-dark-color('accent-color') !important;
color: get-dark-color('text-over-accent-color') !important;
}
}
.btn-link {
color: get-dark-color('accent-color');
&:hover,
&:focus {
color: get-dark-color('hover-over-accent-color');
}
}
.nav-button {
color: get-dark-color('muted-text-color');
}
.tags {
li {
background: get-dark-color('accent-color');
a {
background-color: get-dark-color('bg-card');
border: 1px solid get-dark-color('muted-text-color');
color: get-dark-color('text-over-accent-color');
}
}
}
.icon-button {
background-color: get-dark-color('muted-text-color');
color: get-dark-color('text-over-accent-color') !important;
&:hover,
&:focus {
background-color: get-dark-color('accent-color') !important;
}
}
.filled-button {
background-color: get-dark-color('accent-color') !important;
color: get-dark-color('text-over-accent-color') !important;
&:hover,
&:active {
background-color: get-dark-color('hover-over-accent-color') !important;
}
}
}

View file

@ -0,0 +1,115 @@
.card {
box-shadow: none;
@include transition();
overflow: hidden;
background: get-light-color('bg-card');
&:hover,
&:focus {
box-shadow: $box-shadow;
border: 1px solid get-light-color('bg-primary');
@include transition();
}
.card-head {
height: 172px;
display: flex;
overflow: hidden;
}
.card-body {
text-align: justify;
}
.card-img-top {
@include transition();
}
.card-img-sm {
width: 32px;
height: 32px;
}
.card-img-xs {
width: 24px;
height: 24px;
}
.card-footer {
background: get-light-color('bg-card') !important;
a.btn {
text-decoration: none !important;
}
}
}
.post-card {
width: 24rem;
display: inline-flex;
.post-card-link {
text-decoration: none !important;
}
.card {
margin: 5px;
position: relative;
&:hover,
&:focus {
.card-img-top {
transform: scale(1.2);
@include transition();
}
}
.card-body {
padding: 1.25rem !important;
padding-bottom: 0 !important;
.post-summary {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
max-height: 144px;
/* fallback */
-webkit-line-clamp: 5;
/* number of lines to show */
-webkit-box-orient: vertical;
}
}
.card-footer {
margin-top: auto;
span {
font-size: 10pt;
color: get-light-color('muted-text-color') !important;
padding-top: 5px;
}
}
}
}
html[data-theme='dark'] {
.card {
background: get-dark-color('bg-card');
&:hover,
&:focus {
border: 1px solid rgba(get-dark-color('accent-color'), 0.2);
}
.card-footer {
background: get-dark-color('bg-card') !important;
}
}
.post-card {
.card {
.card-footer {
span {
color: get-dark-color('muted-text-color') !important;
}
}
}
}
}

View file

@ -0,0 +1,48 @@
img {
display: block;
max-width: 100%;
&.center {
margin-left: auto;
margin-right: auto;
}
&.left {
margin-right: auto;
}
&.right {
margin-left: auto;
}
}
figure {
border: 1px solid rgba(get-light-color('accent-color'), 0.1);
height: -moz-fit-content;
height: fit-content;
width: -moz-fit-content;
width: fit-content;
align-self: center;
margin: auto;
}
caption,
figcaption {
caption-side: bottom;
text-align: center;
color: get-light-color('muted-text-color');
}
html[data-theme='dark'] {
figure {
border: 1px solid rgba(get-dark-color('accent-color'), 0.1);
}
caption,
figcaption {
color: get-dark-color('muted-text-color');
}
}
.svg-inverted {
filter: invert(1);
}

View file

@ -0,0 +1,79 @@
a {
color: get-light-color('accent-color');
@include transition();
&:hover,
&:focus {
text-decoration: get-light-color('hover-over-accent-color') underline;
color: get-light-color('hover-over-accent-color');
@include transition();
}
}
.list-link {
text-decoration: none !important;
color: get-light-color('text-color');
@include transition();
&.active {
display: inline;
color: get-light-color('accent-color');
}
&:hover {
margin-left: 3px;
color: get-light-color('accent-color');
@include transition();
}
}
a.header-anchor {
text-decoration: none;
color: get-light-color('heading-color');
i,
svg {
font-size: 10pt;
color: get-light-color('text-color');
display: none;
margin-left: 0.5rem;
}
&:hover {
i,
svg {
display: inline-block;
}
}
code {
color: get-light-color('inline-code-color');
}
}
.anchor {
padding-top: 3.5rem;
}
html[data-theme='dark'] {
a {
color: get-dark-color('accent-color');
&:hover,
&:focus {
text-decoration: get-dark-color('hover-over-accent-color') underline;
color: get-dark-color('hover-over-accent-color');
}
}
.list-link {
color: get-dark-color('text-color');
&:hover {
color: get-dark-color('accent-color');
}
}
a.header-anchor {
color: get-dark-color('heading-color');
i,
svg {
color: get-dark-color('text-color');
}
code {
color: get-dark-color('inline-code-color');
}
}
}

View file

@ -0,0 +1,48 @@
.paginator {
width: -moz-fit-content;
width: fit-content;
margin: auto;
vertical-align: bottom;
.page-item {
& > a {
color: get-light-color('accent-color');
}
&.active,
&:hover > a {
background-color: get-light-color('accent-color') !important;
color: get-light-color('text-over-accent-color') !important;
}
}
}
pre {
margin: 5px;
& > code {
padding: 10px !important;
}
}
@include media('<=large') {
pre {
margin: 0px;
& > code {
padding: 0px !important;
}
}
}
html[data-theme='dark'] {
.paginator {
.page-item {
& > a {
color: get-dark-color('accent-color');
}
&.active,
&:hover > a {
background-color: get-dark-color('accent-color') !important;
color: get-dark-color('text-over-accent-color') !important;
}
}
}
}

View file

@ -0,0 +1,110 @@
table {
border-radius: 0.1rem;
border: 1px solid rgba(get-light-color('accent-color'), 0.1);
min-width: 10rem;
padding: 0.1rem;
thead {
tr {
background: get-light-color('accent-color');
color: get-light-color('text-over-accent-color');
}
}
tbody {
tr {
height: 40px !important;
color: get-light-color('text-color');
&:nth-child(odd) {
background-color: get-light-color('bg-primary');
}
&:nth-child(even) {
background-color: rgba(get-light-color('accent-color'), 0.05);
}
}
}
th,
td {
padding-top: 0.2rem;
padding-bottom: 0.2rem;
padding-left: 0.5rem;
padding-right: 0.5rem;
}
}
.gist {
table {
border-radius: unset !important;
background: unset !important;
border: unset !important;
padding: unset !important;
tr {
height: unset !important;
}
th,
td {
padding: unset !important;
border-left: unset !important;
border-bottom: unset !important;
}
td,
tc {
border-right: 1px solid rgba(get-light-color('accent-color'), 0.1);
}
thead {
tr {
background: unset !important;
color: unset !important;
}
}
tbody {
tr {
&:nth-child(odd) {
background-color: unset !important;
}
&:hover {
background: unset !important;
}
}
}
}
}
html[data-theme='dark'] {
table {
border: 1px solid rgba(get-dark-color('accent-color'), 0.1);
thead {
tr {
background: get-dark-color('accent-color');
color: get-dark-color('text-over-accent-color');
}
}
tbody {
tr {
color: get-dark-color('text-color');
&:nth-child(odd) {
background-color: get-dark-color('bg-primary');
}
&:nth-child(even) {
background-color: rgba(get-dark-color('accent-color'), 0.05);
}
}
}
}
.gist {
&::selection{
background: get-dark-color('text-color');
color: get-dark-color('inverse-text-color');
}
table {
td,
tc {
border-right: 1px solid rgba(get-dark-color('accent-color'), 0.1);
}
}
}
}

View file

@ -0,0 +1,109 @@
h1,
h2,
h3,
h4,
h5 {
color: get-light-color('heading-color');
}
strong {
color: get-light-color('heading-color') !important;
}
p {
color: get-light-color('text-color');
}
blockquote {
border-left: 4px solid get-light-color('accent-color');
background-color: rgba(get-light-color('accent-color'), 0.05);
padding: 0.3rem;
padding-left: 1rem;
& > p {
color: get-light-color('text-color');
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
}
.text-muted {
color: get-light-color('muted-text-color') !important;
}
.text-heading {
font-weight: bold;
color: get-light-color('muted-text-color');
}
.sub-title {
color: get-light-color('muted-text-color');
font-size: 10pt;
}
::-moz-selection {
@include selection-color();
}
::selection {
@include selection-color();
}
@include media('<=small') {
h1 {
font-size: 2.2rem;
}
}
@include media('<=tiny') {
h1 {
font-size: 1.5rem;
}
}
html[data-theme='dark'] {
h1,
h2,
h3,
h4,
h5 {
color: get-dark-color('heading-color');
}
strong {
color: get-dark-color('heading-color') !important;
}
p {
color: get-dark-color('text-color');
}
blockquote {
border-left: 4px solid get-dark-color('accent-color');
background-color: rgba(get-dark-color('accent-color'), 0.05);
color: get-dark-color('text-color');
}
.text-muted {
color: get-dark-color('muted-text-color') !important;
}
.text-heading {
color: get-dark-color('muted-text-color');
}
.sub-title {
color: get-dark-color('muted-text-color');
}
::-moz-selection {
@include selection-color($theme: 'dark');
}
::selection {
@include selection-color($theme: 'dark');
}
li,
ul {
color: get-dark-color('text-color');
}
}

View file

@ -1,95 +1,64 @@
body.kind-404 {
.navbar-toggler {
#sidebar-toggler {
display: none;
}
.notFound {
padding-top: 5rem;
text-align: center;
padding-bottom: 8rem;
img {
height: 500px;
}
h1 {
font-style: italic;
}
.message {
position: absolute;
max-width: 20rem;
top: 40%;
left: 30%;
}
}
.notFound img {
height: 500px;
}
.notFound h1 {
font-style: italic;
}
.notFound .message {
position: absolute;
max-width: 20rem;
top: 40%;
left: 30%;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
@include media('<=very-large') {
.notFound .message {
top: 50%;
left: 25%;
}
}
/* IPad Pro */
@media (max-width: 1024px) {
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
@include media('<=large') {
.notFound .message {
top: 46%;
left: 25%;
}
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
.notFound img {
height: 400px;
}
.notFound .message {
top: 20rem;
left: 4rem;
@include media('<=medium') {
.notFound {
img {
height: 400px;
}
.message {
top: 20rem;
left: 4rem;
}
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
.notFound img {
height: 250px;
}
.notFound .message {
top: 20rem;
left: 2rem;
@include media('<=small') {
.notFound {
img {
height: 250px;
}
.message {
top: 20rem;
left: 2rem;
}
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}

View file

@ -1,267 +1,207 @@
// in Hugo, Page kind can be either "section" or "page".
// if it is section, then it's a page with a list of items, for example /posts
// if it is page, then it is a single page.
body.kind-section, body.kind-term, body.kind-page{
body.kind-section,
body.kind-term,
body.kind-page {
.wrapper {
display: flex;
padding: 0;
margin: 0;
width: 100%;
}
.content-section {
flex: 80%;
order: 2;
/* background-color: lightseagreen; */
padding: 0;
position: relative;
padding-left: 0.5rem;
padding-right: 0.5rem;
}
.content {
padding: 0;
position: relative;
padding-top: 2rem;
min-height: 130vh;
}
.post-card-holder {
margin-top: 32px;
margin-left: auto;
padding: 0;
display: flex;
flex-flow: wrap;
}
.post-card-holder .post-card {
width: calc(100% / 3);
display: inline-flex;
}
.post-card-holder .card {
margin: 5px;
position: relative;
}
.post-card-holder .card .card-footer span {
font-size: 10pt;
color: #6c757d !important;
padding-top: 5px;
}
.post-card-holder .card .card-footer {
background: #fff;
margin-top: auto;
}
.post-summary {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
max-height: 144px;
/* fallback */
-webkit-line-clamp: 5;
/* number of lines to show */
-webkit-box-orient: vertical;
}
.post-card-holder .post-card-link {
text-decoration: none;
}
.paginator {
width: -moz-fit-content;
width: fit-content;
margin: auto;
}
.paginator .page-item > a {
color: #248aaa;
}
.paginator .page-item.active > a {
background-color: #248aaa;
color: #f9fafc;
}
.navbar-toggler {
display: none;
}
.pagination {
margin-left: auto;
margin-right: auto;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
width: -moz-fit-content;
width: fit-content;
}
.taxonomy-terms-card {
text-align: left;
}
.taxonomy-terms-card li {
font-size: 0.5em;
list-style-type: none;
display: inline-block;
background: #248aaa;
margin-left: 0.1em;
margin-right: 0.1em;
}
.taxonomy-terms-card a {
color: #f9fafc;
.content-section {
flex: 80%;
order: 2;
/* background-color: lightseagreen; */
padding: 0;
position: relative;
padding-left: 0.5rem;
padding-right: 0.5rem;
.content {
padding: 0;
position: relative;
padding-top: 2rem;
min-height: 130vh;
.post-card-holder {
margin-top: 32px;
margin-left: auto;
padding: 0;
display: flex;
flex-flow: wrap;
}
.paginator {
width: -moz-fit-content;
width: fit-content;
margin: auto;
.pagination {
margin-left: auto;
margin-right: auto;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
width: -moz-fit-content;
width: fit-content;
}
.page-item {
& > a {
color: get-light-color('accent-color');
}
&.active > a {
background-color: get-light-color('accent-color');
color: get-light-color('text-over-accent-color');
}
}
}
}
}
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
@include media('<medium') {
.post-card {
margin-left: 1%;
margin-right: 1%;
width: 98%;
}
.wrapper {
padding-left: 0px;
padding-right: 0px;
flex-flow: column;
overflow: hidden;
.content-section {
flex: 100%;
max-width: 100%;
padding-left: 0;
width: 100%;
.content {
width: 100%;
padding-left: 0;
padding-right: 0;
@include transition();
}
&.hide {
.content {
margin-top: 0;
padding-top: 0;
@include transition();
}
.post-card-holder {
margin-top: 0.5rem;
@include transition();
}
}
}
}
}
@include media('>=medium', '<large') {
.post-card {
width: calc(100% / 2);
}
.content-section.hide {
.post-card {
width: 100%;
}
}
}
@include media('>=large', '<very-large') {
.post-card {
width: calc(100% / 3);
}
.wrapper {
padding-left: 0px;
padding-right: 0px;
.content-section {
padding: 0;
flex: 60%;
order: 2;
padding-bottom: 0.5rem;
.content {
overflow: hidden;
.post-card-holder {
margin: 0;
margin-top: 1.5rem;
padding-left: 0.5rem;
padding-right: 0.5rem;
position: relative;
@include transition();
}
}
.container {
max-width: 100%;
}
&.hide {
.post-card {
width: calc(100% / 2);
}
}
}
}
}
@include media('>=very-large', '<extra-large') {
.post-card {
width: calc(100% / 4);
}
.post-card-holder {
margin-left: 0px;
}
}
@include media('>=extra-large') {
.post-card {
width: calc(100% / 5);
}
.content-section {
padding-left: 1rem;
padding-right: 1rem;
flex: 85%;
max-width: 85%;
}
.post-card-holder .post-card {
width: calc(100% / 5);
}
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
.post-card-holder {
margin-left: 0px;
}
.post-card-holder .post-card {
width: calc(100% / 3);
}
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
.wrapper {
padding-left: 0px;
padding-right: 0px;
}
.content-section {
padding: 0;
flex: 60%;
order: 2;
padding-bottom: 0.5rem;
}
.content {
overflow: hidden;
}
.container {
max-width: 100%;
}
.navbar-toggler {
display: block;
}
#toc-toggler {
visibility: hidden;
}
.navbar-collapse.lang-selector {
display: block !important;
position: absolute;
right: 0;
top: 0.5rem;
}
.post-card-holder {
margin: 0;
margin-top: 1.5rem;
padding-left: 0.5rem;
padding-right: 0.5rem;
position: relative;
transition: all ease-out 0.3s;
}
.post-card-holder .post-card {
width: calc(100% / 3);
}
.content-section.hide .post-card-holder .post-card {
width: 50%;
}
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
.post-card-holder .post-card {
width: 50%;
}
.content-section.hide .post-card-holder .post-card {
width: 100%;
}
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
.wrapper {
padding-left: 0px;
padding-right: 0px;
flex-flow: column;
overflow: hidden;
}
.content-section {
flex: 100%;
max-width: 100%;
padding-left: 0;
width: 100%;
}
.content {
width: 100%;
padding-left: 0;
padding-right: 0;
transition: all ease-out 0.3s;
}
.content-section.hide .content {
margin-top: 0;
padding-top: 0;
transition: all ease-out 0.3s;
}
.content-section.hide .post-card-holder {
margin-top: 0.5rem;
transition: all ease-out 0.3s;
}
.post-card-holder .post-card {
margin-left: 1%;
margin-right: 1%;
width: 98%;
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
html[data-theme='dark'] {
body.kind-section,
body.kind-term,
body.kind-page {
.wrapper {
.content-section {
.content {
.paginator {
.page-item {
& > a {
background-color: get-dark-color('bg-card') !important;
color: get-dark-color('text-color') !important;
border: 1px solid get-dark-color('muted-text-color') !important;
text-decoration: none !important;
&:hover {
background-color: get-dark-color('hover-over-accent-color') !important;
color: get-dark-color('text-over-accent-color') !important;
}
}
&.active > a {
background-color: get-dark-color('accent-color') !important;
color: get-dark-color('text-over-accent-color') !important;
}
}
}
}
}
}
}
}

View file

@ -1,517 +1,115 @@
/* ========= Colors ============
Heading: #1C2D41
Paragraph: #3C4858
Iconography: #8392A5
Secondary: #C0CCDA
Dirty Snow: #E5E9F2
Snow: #F9FAFC
Magenta: #7551E9
Orange: #FF7D51
Pink: #ED63D2
Green: #2DCA73
Yellow: #FFC212
*/
/*
Removed smooth scrolling implementation in main.js in favor of
simpler css approach.
See: https://css-tricks.com/snippets/jquery/smooth-scrolling/
*/
*, html {
scroll-behavior: smooth !important;
}
/*
*,
html {
scroll-behavior: smooth !important;
}
body {
position: relative;
}
/*
Fixes anchor overlapping with header.
See: https://stackoverflow.com/questions/4086107/fixed-page-header-overlaps-in-page-anchors
*/
:target::before {
content: "";
display: block;
height: 2em; /* fixed header height*/
margin: -2em 0 0; /* negative fixed header height */
}
body {
background-color: #f9fafc;
font-family: "Mulish";
}
h1,
h2,
h3,
h4,
h5 {
color: #1c2d41;
}
strong {
color: #1c2d41 !important;
}
p {
color: #3c4858;
}
a {
color: #248aaa;
}
a:hover {
color: #207089;
}
.nav-button {
background-color: transparent;
border: 1px solid transparent;
border-radius: 0.25rem;
color: #8392a5;
}
.btn-dark {
background-color: #3c4858!important;
border-color: #3c4858!important;
color: #e5e9f2!important;
transition: all 0.3s ease-out!important;
}
.btn-dark:hover,
.btn-dark:focus {
background-color: #248aaa!important;
border-color: #248aaa!important;
transition: all 0.3s ease-out!important;
}
.btn-outline-info {
color: #2098d1 !important;
border-color: #2098d1 !important;
}
.btn-outline-info:hover {
background-color: #2098d1 !important;
color: #e5e9f2 !important;
}
.btn-info {
background-color: #248aaa !important;
color: #e5e9f2 !important;
}
.btn-info:hover {
background-color: #2098d1 !important;
color: #e5e9f2 !important;
}
.btn-link {
color: #248aaa;
}
.btn-link:hover {
color: #207089;
}
.bg-white {
background-color: #f9fafc !important;
}
.bg-dimmed {
background-color: #e5e9f2;
}
.anchor {
padding-top: 3.5rem;
}
img.center {
display: block;
margin-left: auto;
margin-right: auto;
}
img.left {
display: block;
margin-right: auto;
}
img.right {
display: block;
margin-left: auto;
}
.card {
box-shadow: none;
transition: all 0.3s ease-out;
overflow: hidden;
}
.card-img-sm {
width: 32px;
height: 32px;
}
.card-img-xs {
width: 24px;
height: 24px;
}
.card:hover,
.card:focus {
box-shadow: 0px 8px 56px rgba(15, 80, 100, 0.16);
border: 1px solid #fff;
transition: all 0.3s ease-out;
}
.card .card-head {
height: 172px;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
}
.card-img-top {
transition: all 0.3s ease-out !important;
}
.card:hover .card-head .card-img-top,
.card:focus .card-head .card-img-top {
transition: all 0.3s ease-out;
transform: scale(1.2);
}
.card-body {
text-align: justify;
}
.sub-title {
color: #c0ccda;
font-size: 10pt;
}
.flag-icon {
width: 16px !important;
margin-top: 3px;
margin-right: 3px;
}
/* ====== table ====== */
table {
border-radius: 0.1rem;
background: #e5e9f2;
border: 1px solid #c0ccda;
padding: 0.1rem;
}
table tr {
height: 40px !important;
}
table th,
td {
padding: 0.5rem;
border-left: 1px solid #8392a5;
border-bottom: 1px solid #8392a5;
}
table thead tr {
background: #248aaa;
color: #e5e9f2;
}
tbody tr:nth-child(odd) {
background-color: #e5e9f2;
}
tbody tr:hover {
background: #c0ccda;
}
/* ====== don't apply css to tables inside gist ====== */
.gist table {
border-radius: unset;
background: unset;
border: unset;
padding: unset;
}
.gist table tr {
height: unset !important;
}
.gist table th,
td {
padding: unset;
border-left: unset;
border-bottom: unset;
}
.gist table thead tr {
background: unset;
color: unset;
}
.gist tbody tr:nth-child(odd) {
background-color: unset;
}
.gist tbody tr:hover {
background: unset;
}
.gist table td, .gist table tc{
border-right: 1px solid #eee;
}
figure {
border: 1px solid #c0ccda;
height: -moz-fit-content;
height: fit-content;
width: -moz-fit-content;
width: fit-content;
align-self: center;
margin: auto;
}
img {
max-width: 100%;
}
caption,
figcaption {
caption-side: bottom;
text-align: center;
color: #8392a5;
}
pre {
margin: 5px;
}
pre > code {
padding: 10px !important;
}
a.header-anchor {
text-decoration: none;
color: #1c2d41;
}
a.header-anchor i, a.header-anchor svg {
font-size: 10pt;
color: #3c4858;
display: none;
margin-left: 0.5rem;
}
a.header-anchor:hover i, a.header-anchor:hover svg {
display: inline-block;
}
a.header-anchor code {
color: #e83e8c;
}
.content ul > ol,
.content ol > ul,
.content ul > ul,
.content ol > ol,
.content li > ol,
.content li > ul {
:target::before {
content: '';
display: block;
height: 2em; /* fixed header height*/
margin: -2em 0 0; /* negative fixed header height */
}
body {
background-color: get-light-color('bg-primary');
font-family: 'Mulish';
}
.bg-primary {
background-color: get-light-color('bg-primary') !important;
}
.bg-secondary {
background-color: get-light-color('bg-secondary') !important;
}
.flag-icon {
width: 16px !important;
margin-top: 3px;
margin-right: 3px;
}
.hidden {
display: none !important;
}
.content {
ul > ol,
ol > ul,
ul > ul,
ol > ol,
li > ol,
li > ul {
-webkit-padding-start: 1rem;
padding-inline-start: 1rem;
}
kbd {
background-color: #248aaa !important;
color: #f9fafc;
}
mark {
background-color: #ffc21280;
}
/* ======= Paginator ========= */
.paginator {
width: -moz-fit-content;
width: fit-content;
margin: auto;
vertical-align: bottom;
}
.paginator .page-item > a {
color: #248aaa;
}
.paginator .page-item.active > a {
background-color: #248aaa;
color: #f9fafc;
}
/* --- FOOTER START --- */
.footer {
color: #8392a5 !important;
background-color: #1c2d41;
position: relative;
z-index: 9999;
}
.footer h5 {
color: #c0ccda;
}
.footer a {
color: #8392a5;
transition: all 0.3s ease-out;
}
.footer a:hover {
margin-left: 5px;
transition: all 0.3s ease-out;
}
.footer ul {
list-style: none;
padding-left: 0;
}
.footer li {
margin-top: 5px;
}
.footer hr {
background-color: #8392a5;
}
.footer p:first-child {
color: #c0ccda;
}
.footer input {
background-color: #c0ccda;
}
.footer input:focus {
background-color: #e5e9f2;
}
.footer #disclaimer{
color: #8392a5 !important;
text-align: justify;
}
.footer #disclaimer>strong{
color: #c0ccda!important;
}
.footer #theme {
color: #c0ccda;
}
.footer #theme img {
width: 32px;
}
.footer #hugo:hover {
margin-right: 5px;
transition: all 0.3s ease-out;
}
/* --- FOOTER END ---- */
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
.content-section .languageSelector {
position: fixed;
right: 0.5rem;
bottom: 1rem;
z-index: 10000000;
background-color: #f9fafc;
box-shadow: 0px 8px 56px rgba(15, 80, 100, 0.16);
}
pre {
margin: 0px;
}
code {
padding: 0px;
}
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
.skills-section .container,
.projects-section .container,
.publications-section .container {
}
kbd {
background-color: get-light-color('accent-color');
color: get-light-color('text-over-accent-color');
}
mark {
background-color: get-light-color('highlight-color');
border-radius: 0.25rem;
}
@include media('<=small') {
.skills-section,
.projects-section,
.publications-section {
.container {
padding-left: 0.3rem;
padding-right: 0.3rem;
}
.section-holder {
padding-left: 5px;
padding-right: 5px;
}
.skills-section,
.projects-section,
.recent-posts-section,
.achievements-section,
.publications-section {
padding-left: 0;
padding-right: 0;
}
pre {
margin: 0px;
}
code {
padding: 0px;
}
h1 {
font-size: 2.2rem;
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
h1 {
font-size: 2rem;
}
.section-holder {
padding-left: 5px;
padding-right: 5px;
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
h1 {
font-size: 1.8rem;
}
.skills-section,
.projects-section,
.recent-posts-section,
.achievements-section,
.publications-section {
padding-left: 0;
padding-right: 0;
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
h1 {
font-size: 1.5rem;
}
}
html[data-theme='dark'] {
body {
background-color: get-dark-color('bg-primary');
color: get-dark-color('text-color');
}
.bg-primary {
background-color: get-dark-color('bg-primary') !important;
}
.bg-secondary {
background-color: get-dark-color('bg-secondary') !important;
}
kbd {
background-color: get-dark-color('accent-color');
color: get-dark-color('text-over-accent-color');
}
mark {
background-color: get-dark-color('highlight-color');
}
}

View file

@ -4,249 +4,196 @@ body.type-notes {
padding: 0;
margin: 0;
width: 100%;
.content-section {
flex: 80%;
max-width: 80%;
order: 2;
/* background-color: lightseagreen; */
padding: 0;
position: relative;
padding-left: 0.5rem;
padding-right: 0.5rem;
.content {
padding: 0;
position: relative;
padding-top: 2rem;
min-height: 130vh;
.note-card-holder {
margin-top: 2rem;
display: flex;
flex-flow: wrap;
margin-left: auto;
padding: 0;
.note-card {
align-self: flex-start;
flex: auto;
.card {
margin: 0.5rem;
.card-body {
padding: 1rem;
pre {
margin: 0;
border-radius: 3px;
}
}
}
}
.note-title {
padding-left: 1rem;
color: get-light-color('accent-color');
&:before {
content: '';
display: inline-block;
width: 98%;
height: 100%;
margin-bottom: -26px;
border-bottom: 1px solid get-light-color('accent-color');
}
span {
background: get-light-color('bg-secondary');
padding-right: 5px;
}
}
}
}
}
}
.content-section {
flex: 80%;
max-width: 80%;
order: 2;
/* background-color: lightseagreen; */
padding: 0;
position: relative;
padding-left: 0.5rem;
padding-right: 0.5rem;
}
.content {
padding: 0;
position: relative;
padding-top: 2rem;
min-height: 130vh;
}
.note-card-holder{
padding-top: 2rem;
display: grid;
grid-gap: 0.5rem;
grid-template-columns: repeat(auto-fill, minmax(30rem,1fr));
grid-auto-rows: 20px;
}
/* .note-collection {
display: flex;
flex-wrap: wrap;
} */
.note-card {
align-self: flex-start;
}
.note-card .card{
margin: 0.5rem;
}
.note-title{
padding-left: 1rem;
color: #248aaa;
}
.note-title span{
background: #e5e9f2;
padding-right: 5px;
}
.note-title:before{
content:'';
display:inline-block;
width:98%;
height:100%;
margin-bottom:-26px;
border-bottom: 1px solid #248aaa;
}
.note-card .card-body{
padding: 1rem;
}
.note-card pre {
margin: 0;
border-radius: 3px;
}
/* .small-note{
max-width: 15rem;
}
.medium-note{
max-width: 25rem;
}
.large-note{
max-width: 40rem;
}
.huge-note{} */
.note-badge{
font-size: 10pt;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
.content-section {
padding-left: 1rem;
padding-right: 1rem;
flex: 85%;
max-width: 85%;
}
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
@include media('<=extra-large') {
.note-card-holder {
margin-left: 0px;
.note-card {
flex: 30%;
}
}
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
@include media('<=large') {
.wrapper {
padding-left: 0px;
padding-right: 0px;
}
.content-section {
padding: 0;
max-width: 100%;
order: 2;
padding-bottom: 0.5rem;
transition: all ease-out 0.3s;
}
.content-section.hide {
max-width: 60%;
transition: all ease-out 0.3s;
}
.content {
overflow: hidden;
}
.container {
max-width: 100%;
}
.navbar-toggler {
display: block;
}
#toc-toggler {
visibility: hidden;
}
.navbar-collapse.lang-selector {
display: block !important;
position: absolute;
right: 0;
top: 0.5rem;
}
.note-card-holder {
margin: 0;
margin-top: 1.5rem;
padding-left: 0.5rem;
padding-right: 0.5rem;
position: relative;
transition: all ease-out 0.3s;
}
.content-section.hide .note-card-holder{
grid-template-columns: repeat(auto-fill, minmax(30rem,1fr));
transition: all ease-out 0.3s;
.content-section {
padding: 0;
max-width: 100%;
order: 2;
padding-bottom: 0.5rem;
@include transition();
.content {
overflow: hidden;
.note-card-holder {
margin: 0;
margin-top: 1.5rem;
padding-left: 0.5rem;
padding-right: 0.5rem;
position: relative;
@include transition();
.note-card {
flex: 50%;
}
}
}
.container {
max-width: 100%;
}
&.hide {
max-width: 60%;
@include transition();
}
}
}
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
@include media('<=medium') {
.note-card-holder .note-card {
max-width: 100%;
max-width: 50%;
min-width: 50%;
transition: all ease-out 0.3s;
@include transition();
}
.content-section.hide .note-card-holder .note-card {
max-width: 100%;
min-width: 100%;
transition: all ease-out 0.3s;
@include transition();
}
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
@include media('<=small') {
.wrapper {
padding-left: 0px;
padding-right: 0px;
flex-flow: column;
overflow: hidden;
}
.content-section, .content-section.hide {
flex: 100%;
max-width: 100%;
padding-left: 0;
width: 100%;
transition: all ease-out 0.3s;
}
.content {
width: 100%;
padding-left: 0;
padding-right: 0;
transition: all ease-out 0.3s;
}
.content-section.hide .content {
margin-top: 0;
padding-top: 0;
transition: all ease-out 0.3s;
}
.content-section.hide .note-card-holder {
margin-top: 0.5rem;
transition: all ease-out 0.3s;
}
.note-card-holder .note-card, .content-section.hide .note-card-holder .note-card {
margin-left: 1%;
margin-right: 1%;
max-width: 98%;
min-width: 98%;
transition: all ease-out 0.3s;
.content-section {
.content {
width: 100%;
padding-left: 0;
padding-right: 0;
@include transition();
.note-card-holder {
margin-top: 0.5rem;
@include transition();
.note-card {
flex: 100%;
max-width: 100%;
@include transition();
}
}
}
&.hide {
flex: 100%;
max-width: 100%;
padding-left: 0;
width: 100%;
@include transition();
.content {
.note-card-holder {
margin-top: 0;
padding-top: 0;
@include transition();
}
}
}
}
}
}
}
html[data-theme='dark'] {
body.type-notes {
.wrapper {
.content-section {
.content {
.note-card-holder {
.note-title {
color: get-dark-color('accent-color');
&:before {
border-bottom: 1px solid get-dark-color('accent-color');
}
span {
background: get-dark-color('bg-secondary');
padding-right: 5px;
}
}
}
}
}
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}

View file

@ -1,11 +1,7 @@
body.kind-page {
background-color: #e5e9f2;
background-color: get-light-color('bg-secondary');
position: relative;
.read-area {
background-color: #f9fafc;
}
.wrapper {
display: flex;
padding: 0;
@ -13,312 +9,197 @@ body.kind-page {
width: 100%;
justify-content: space-between;
position: relative;
.content-section {
flex: 60%;
max-width: 60%;
order: 2;
padding: 0;
position: relative;
padding-left: 1rem;
padding-right: 1rem;
.content {
padding-top: 1.5rem;
.read-area {
background-color: get-light-color('bg-primary');
.hero-area {
margin-top: 3rem;
width: 100%;
height: 400px;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
.page-content {
width: 100%;
position: relative;
top: -4.5rem;
padding: 15px;
.author-profile {
position: relative;
align-content: center;
text-align: center;
.author-name {
margin-top: 0px;
}
img {
height: 120px;
width: 120px;
-o-object-fit: cover;
object-fit: cover;
background-color: get-light-color('bg-primary');
padding: 5px;
}
}
.title {
text-align: center;
}
.tags {
text-align: center;
}
.post-content {
padding: 15px;
h1,
h2 {
margin-top: 1.4rem;
}
h3,
h4,
h5,
h6 {
margin-top: 1.3rem;
}
}
.next-prev-navigator {
padding-left: 1rem !important;
padding-right: 1rem !important;
.next-article {
text-align: right;
}
.next-prev-text {
white-space: break-spaces;
}
a {
text-decoration: none !important;
}
}
}
}
}
}
.toc-section {
flex: 20%;
order: 3;
max-width: 20%;
@include transition();
.toc-holder {
position: sticky;
top: 4.5rem;
padding-top: 1rem;
overflow-x: hidden;
overflow-y: auto;
background-color: get-light-color('bg-primary');
margin-right: 0.5rem;
@include transition();
.toc {
position: relative;
padding-top: 0px;
@include transition();
nav {
padding-top: 0px;
margin-top: 0px;
display: flex;
flex-direction: column;
align-items: flex-start;
@include transition();
ul {
list-style: none;
padding-left: 0.5rem;
margin-bottom: 0rem;
width: 100%;
}
.nav-link {
padding: 0;
padding-left: 0.5rem;
text-decoration: none !important;
@include transition();
color: get-light-color('text-color');
&:hover,
&:focus,
&.active {
padding-left: 1rem;
padding-right: 0.5rem;
background-color: get-light-color('accent-color');
color: get-light-color('text-over-accent-color');
@include transition();
}
}
}
}
}
}
.disquss {
padding: 10px;
}
.share-buttons {
@include brand-background();
.btn {
border: none !important;
}
}
}
.content-section {
flex: 60%;
max-width: 60%;
order: 2;
/* background-color: lightseagreen; */
padding: 0;
position: relative;
padding-left: 1rem;
padding-right: 1rem;
}
.content {
background: #e5e9f2;
}
.toc-section {
flex: 20%;
order: 3;
max-width: 20%;
/* background-color: lightpink; */
transition: all ease-out 0.5s;
}
.toc-holder {
position: sticky;
top: 4.5rem;
overflow-x: hidden;
overflow-y: auto;
background-color: #f9fafc;
margin-right: 0.5rem;
/* box-shadow: 0px 8px 56px rgba(15, 80, 100, 0.16); */
transition: all ease-out 0.3s;
}
.toc {
position: relative;
padding-top: 0px;
transition: all ease-out 0.3s;
}
.toc nav {
padding-top: 0px;
margin-top: 0px;
display: flex;
flex-direction: column;
align-items: flex-start;
transition: all ease-out 0.3s;
}
.toc ul {
list-style: none;
padding-left: 0.5rem;
margin-bottom: 0rem;
width: 100%;
}
.toc .nav-link {
padding: 0;
padding-left: 0.5rem;
transition: all ease-out 0.3s;
color: #1c2d41;
}
.toc .nav-link:hover,
.toc .nav-link:focus,
.toc .nav-link.active {
padding-left: 1rem;
padding-right: 0.5rem;
background-color: #248aaa;
color: #f9f9f9;
transition: all ease-out 0.3s;
}
.hero-area {
margin-top: 3rem;
width: 100%;
height: 400px;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
.page-content {
width: 100%;
position: relative;
top: -4.5rem;
padding: 15px;
}
.author-profile {
position: relative;
align-content: center;
text-align: center;
}
.author-name {
margin-top: 0px;
}
.author-profile img {
height: 120px;
width: 120px;
-o-object-fit: cover;
object-fit: cover;
background-color: #f9fafc;
padding: 5px;
}
.author-profile p {
color: #8392a5;
}
.title {
text-align: center;
}
.post-content {
padding: 15px;
}
.post-content h1,
h2 {
margin-top: 1.4rem;
}
.post-content h3,
h4,
h5,
h6 {
margin-top: 1.3rem;
}
.post-content blockquote {
border-left: 4px solid #248aaa;
background-color: #248baa15;
padding: 0.3rem;
padding-left: 1rem;
}
.post-content blockquote > p {
color: #3c4858;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
.next-prev-navigator {
padding-left: 10px;
padding-right: 10px;
}
.next-prev-navigator a {
color: #2098d1;
transition: all 0.3s ease-out;
}
.next-prev-navigator a:hover {
color: #3c4858;
transition: all 0.3 ease-out;
}
.next-prev-navigator .next-article {
text-align: right;
}
.next-prev-navigator .next-article a {
transition: all 0.3s ease-out;
}
.next-prev-navigator .previous-article a {
transition: all 0.3s ease-out;
}
.next-prev-navigator .btn-outline-info {
color: #f9fafc !important;
border-color: #e5e9f2 !important;
background-color: #248aaa !important;
transition: all 0.3s ease-out;
}
.next-prev-navigator .next-prev-text {
white-space: break-spaces;
}
.next-prev-navigator .btn-outline-info:hover {
color: #3c4858 !important;
background-color: #e5e9f2 !important;
transition: all 0.3s ease-out;
}
.disquss {
padding: 10px;
}
.share-buttons .btn {
color: #e5e9f2 !important;
transition: all 0.3s ease-out !important;
}
.share-buttons .btn:hover,
.share-buttons .btn:focus {
background-color: #248aaa !important;
border-color: #248aaa !important;
transition: all 0.3s ease-out !important;
}
.share-buttons .facebook-btn {
background-color: #4267b2 !important;
border-color: #4267b2 !important;
}
.share-buttons .twitter-btn {
background-color: #1da1f2 !important;
border-color: #1da1f2 !important;
}
.share-buttons .reddit-btn {
background-color: #ff4500 !important;
border-color: #ff4500 !important;
}
.share-buttons .tumblr-btn {
background-color: #34465d !important;
border-color: #34465d !important;
}
.share-buttons .pocket-btn {
background-color: #ef4056 !important;
border-color: #ef4056 !important;
}
.share-buttons .linkedin-btn {
background-color: #2867b2 !important;
border-color: #2867b2 !important;
}
.share-buttons .diaspora-btn {
background-color: #3c4858 !important;
border-color: #3c4858 !important;
}
.share-buttons .mastodon-btn {
background-color: #2791da !important;
border-color: #2791da !important;
}
.share-buttons .whatsapp-btn {
background-color: #4ac959 !important;
border-color: #4ac959 !important;
}
.share-buttons .email-btn {
background-color: #3c4858 !important;
border-color: #3c4858 !important;
transition: all 0.3s ease-out !important;
}
.btn-improve-page {
text-align: right;
}
.languageSelector {
display: none;
}
#scroll-to-top {
position: fixed;
bottom: 0rem;
right: 1rem;
color: #248aaa;
color: get-light-color('accent-color');
font-size: 24pt;
z-index: 900000;
visibility: hidden;
&:hover {
color: get-light-color('hover-over-accent-color');
}
&.show {
visibility: visible;
}
i {
box-shadow: $box-shadow;
background-color: get-light-color('bg-primary');
border-radius: 50%;
}
}
#scroll-to-top i {
box-shadow: 0px 8px 56px rgba(15, 80, 100, 0.16);
background-color: #f9f9f9;
border-radius: 50%;
}
#scroll-to-top:hover {
color: #2098d1;
}
#scroll-to-top.show {
visibility: visible;
}
.taxonomy-terms {
text-align: center;
}
.taxonomy-terms li {
font-size: 0.8em;
list-style-type: none;
display: inline-block;
background: #248aaa;
margin-left: 0.2em;
margin-right: 0.2em;
}
.taxonomy-terms a {
color: #f9fafc;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
@include media('<=ultra-large') {
.content-section {
flex: 65%;
max-width: 65%;
@ -327,191 +208,175 @@ body.kind-page {
max-width: 100%;
}
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
.wrapper {
padding-left: 0px;
padding-right: 0px;
}
.content-section {
padding: 0;
flex: 60%;
max-width: 100%;
order: 2;
overflow: hidden;
}
.content {
overflow: hidden;
}
@include media('<=large') {
.container {
max-width: 100%;
}
.toc-section {
order: 3;
flex: 0%;
max-width: 0%;
transition: all ease-out 0.3s;
}
.toc-section.hide {
flex: 40%;
max-width: 40%;
margin-left: 0.5rem;
transition: all ease-out 0.3s;
}
.toc-holder {
top: 3rem;
max-height: calc(100vh - 3rem);
}
.navbar-toggler {
display: block;
}
.navbar-collapse.lang-selector {
display: none;
}
.languageSelector {
display: block;
}
.hero-area {
height: 300px;
margin-top: 1rem;
}
.page-content {
padding: 0px;
}
.btn-improve-page {
margin-right: 1rem;
}
#disqus_thread,
.dsq-brlink {
padding: 5px;
.wrapper {
padding-left: 0px;
padding-right: 0px;
.content-section {
padding: 0;
flex: 60%;
max-width: 100%;
order: 2;
overflow: hidden;
.content {
overflow: hidden;
.read-area {
.hero-area {
height: 300px;
margin-top: 1rem;
}
.page-content {
padding: 0px;
}
}
}
}
.toc-section {
display: none;
}
.share-buttons {
max-width: 48%;
}
.btn-improve-page {
margin-right: 1rem;
max-width: 48%;
}
#disqus_thread,
.dsq-brlink {
padding: 5px;
}
}
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
#scroll-to-top {
right: 8rem;
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
@include media('<=small') {
.wrapper {
padding: 0px;
display: flex;
flex-direction: column;
}
.content-section {
padding: 0;
flex: 100%;
max-width: 100%;
order: 3;
}
.toc-section {
order: 2;
width: 100%;
height: -moz-fit-content;
height: fit-content;
max-height: 0;
max-width: 100%;
transition: all ease-out 0.5s;
}
.toc-section.hide {
margin-top: 2.5rem;
position: relative;
/* height: fit-content; */
flex: 100%;
height: -moz-fit-content;
height: fit-content;
max-height: 200vh;
max-width: 100%;
margin-left: 0;
padding-right: 0;
box-shadow: 0px 8px 56px rgba(15, 80, 100, 0.16);
transition: all ease-out 0.5s;
}
.toc-holder {
max-height: 0;
margin-right: 0;
overflow: hidden;
transition: all ease-out 0.5s;
}
.toc-section.hide .toc-holder {
max-height: 200vh;
transition: all ease-out 0.5s;
}
.navbar-toggler {
display: block;
}
.hero-area {
height: 200px;
margin-top: 1rem;
}
.page-content {
padding: 0px;
}
.next-prev-navigator .previous-article {
text-align: center;
margin: 5px;
}
.next-prev-navigator .next-article {
text-align: center;
margin: 5px;
}
.previous-article a,
.next-article a {
width: 100%;
}
#disqus_thread,
.dsq-brlink {
padding: 5px;
.content-section {
padding: 0;
flex: 100%;
max-width: 100%;
order: 3;
.content {
.read-area {
.hero-area {
height: 200px;
margin-top: 1rem;
}
.page-content {
padding: 0px;
.next-prev-navigator {
.previous-article {
text-align: center;
margin: 5px;
a {
width: 100%;
}
}
.next-article {
text-align: center;
margin: 5px;
a {
width: 100%;
}
}
}
}
}
}
}
.share-buttons {
max-width: 100%;
}
.btn-improve-page {
text-align: start;
max-width: 100%;
}
#scroll-to-top {
right: 0.5rem;
}
#disqus_thread,
.dsq-brlink {
padding: 5px;
}
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
html[data-theme='dark'] {
body.kind-page {
background-color: get-dark-color('bg-secondary');
.wrapper {
.content-section {
.content {
.read-area {
background-color: get-dark-color('bg-primary');
.page-content {
.author-profile {
img {
background-color: get-dark-color('bg-primary');
}
}
}
}
}
}
.toc-section {
.toc-holder {
background-color: get-dark-color('bg-primary');
hr {
background-color: get-dark-color('muted-text-color');
}
.toc {
nav {
.nav-link {
color: get-dark-color('text-color');
&:hover,
&:focus,
&.active {
background-color: get-dark-color('accent-color');
color: get-dark-color('text-over-accent-color');
}
}
}
}
}
}
#scroll-to-top {
color: get-dark-color('accent-color');
&:hover {
color: get-dark-color('hover-over-accent-color');
}
i {
background-color: get-dark-color('bg-primary');
}
}
}
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
}

52
assets/styles/mixins.scss Normal file
View file

@ -0,0 +1,52 @@
@function get-color($mode, $key) {
@if map-has-key($themes, $mode) {
$theme: map-get($themes, $mode);
@if map-has-key($theme, $key) {
@return map-get($theme, $key);
}
}
@return red; // default color for debugging purpose
}
@function get-light-color($key) {
@return get-color('light', $key);
}
@function get-dark-color($key) {
@return get-color('dark', $key);
}
@mixin reset-list {
margin: 0;
padding: 0;
list-style: none;
}
@mixin section-title-adjustment() {
h1 > span {
margin-top: -55px; /* Size of fixed header */
padding-bottom: 55px;
display: block;
}
}
@mixin brand-background() {
@each $brand, $color in $brand-colors {
.bg-#{$brand} {
background-color: $color;
}
}
}
@mixin transition() {
transition: all $transition-type $transition-duration;
}
@mixin selection-color($theme: 'light') {
background: get-light-color('accent-color');
color: get-light-color('text-over-accent-color');
@if $theme == 'dark' {
background: get-dark-color('accent-color');
color: get-dark-color('text-over-accent-color');
}
}

View file

@ -1,3 +1,16 @@
@mixin nav-item-hover-effect($theme: 'light') {
color: get-light-color('accent-color') !important;
border-bottom: 2px solid get-light-color('accent-color') !important;
background: rgba(get-light-color('accent-color'), 0.1);
@include transition();
@if $theme == 'dark' {
color: get-dark-color('accent-color') !important;
border-bottom: 2px solid get-dark-color('accent-color') !important;
background: rgba(get-dark-color('accent-color'), 0.1);
}
}
.top-navbar {
position: fixed;
left: 0;
@ -5,294 +18,268 @@
width: 100%;
height: 50px;
z-index: 99999;
transition: all 0.4s ease-out;
margin: 0px;
padding-top: 0.4rem;
color: get-light-color('heading-color');
text-align: center;
background-color: get-light-color('bg-primary');
@include transition();
/* --- initial state start ------ */
&.initial-navbar {
background-color: transparent;
}
&.initial-navbar .navbar-brand {
color: #c0ccda;
.navbar-brand {
color: get-light-color('heading-color');
font-weight: 600;
img {
width: 42px;
padding: 5px;
margin-left: -10px;
}
}
&.initial-navbar li a {
color: #c0ccda;
img {
display: inline-block;
}
&.initial-navbar .navbar-nav .active,
&.initial-navbar li a:hover {
color: #f9fafc;
transition: all 0.3s ease-out;
transform: translateY(-2px);
.sidebar-icon {
width: 32px;
height: 32px;
filter: invert(0.5);
}
.navbar-collapse {
margin-top: -5px;
li {
a {
color: get-light-color('heading-color');
text-decoration: none !important;
font-weight: 500;
@include transition();
border-bottom: 2px solid transparent;
&:hover {
@include nav-item-hover-effect();
}
}
}
.navbar-collapse.show,
.navbar-collapse.collapsing {
background-color: #f9fafc;
padding-left: 1rem;
.navbar-nav .active {
@include nav-item-hover-effect();
}
/* --- initial state end ------ */
/* --- state after scroll start --- */
&.final-navbar {
background-color: #f9fafc;
color: #1c2d41;
transition: all 0.3s ease-out;
}
&.final-navbar .navbar-brand {
color: #1c2d41;
font-weight: 600;
}
&.final-navbar li a {
color: #1c2d41;
font-weight: 500;
transition: all 0.3s ease-out;
border-bottom: 2px solid#F9FAFC;
}
&.final-navbar .navbar-nav .active,
&.final-navbar li a:hover {
color: #2098d1;
transition: all 0.3s ease-out;
border-bottom: 2px solid #2098d1;
background: rgb(2, 0, 36);
background: linear-gradient(
90deg,
rgba(2, 0, 36, 1) 0%,
rgba(34, 136, 168, 0.1) 0%
);
}
.navbar-collapse.show li a,
.navbar-collapse.collapsing li a {
color: #1c2d41;
font-weight: 500;
transition: all 0.3s ease-out;
}
.navbar-collapse.show .navbar-nav .active,
.navbar-collapse.show .navbar-nav a:hover {
color: #2098d1;
}
#top-navbar-divider {
margin-top: 10px;
}
/* --- state after scroll end --- */
#top-navbar-divider {
background: rgba(192, 204, 218, 0.8);
background-color: get-light-color('muted-text-color');
height: 20px;
width: 2px;
}
&.final-navbar #top-navbar-divider {
background: rgba(0, 0, 0, 0.6);
}
#top-navbar-divider {
height: 20px;
width: 2px;
}
.navbar-brand img {
width: 42px;
padding: 5px;
margin-left: -10px;
}
.dropdown-menu {
box-shadow: 0px 8px 56px rgba(15, 80, 100, 0.16);
border: 1px solid #fff;
box-shadow: $box-shadow;
border: 1px solid rgba(get-light-color('accent-color'), 0.1);
max-height: 0vh;
overflow: hidden;
display: block;
visibility: hidden;
transition: all 0.3s ease-out;
@include transition();
&.show {
max-height: 100vh;
visibility: visible;
@include transition();
a {
color: get-light-color('heading-color') !important;
&:hover {
@include nav-item-hover-effect();
}
}
}
}
.dropdown-menu.show {
max-height: 100vh;
visibility: visible;
transition: all 0.3s ease-in;
.navbar-collapse {
margin-top: -5px;
&.show,
&.collapsing {
background-color: get-light-color('bg-primary');
padding-left: 1rem;
li {
a {
color: get-light-color('heading-color');
font-weight: 500;
@include transition();
}
}
.navbar-nav {
.active {
color: get-light-color('accent-color');
}
a:hover {
color: get-light-color('accent-color');
}
}
}
}
.dropdown-menu a {
color: #1c2d41;
border-bottom: none;
&.transparent-navbar {
background-color: transparent !important;
.navbar-brand {
color: get-light-color('inverse-text-color');
font-weight: 600;
}
li {
a {
color: get-light-color('inverse-text-color');
}
}
.feather-menu {
stroke: get-light-color('inverse-text-color');
}
}
.dropdown-menu a:hover {
color: #2098d1;
transition: all 0.3s ease-out;
border-bottom: none;
background: rgb(2, 0, 36);
background: linear-gradient(
90deg,
rgba(2, 0, 36, 1) 0%,
rgba(34, 136, 168, 0.2) 0%
);
#themeMenu {
width: 25px;
min-width: 3rem;
img.theme-icon {
display: block !important;
margin-left: auto !important;
margin-right: auto !important;
}
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
@include media('<=large') {
height: -moz-fit-content;
height: fit-content;
padding-bottom: 0px;
padding-top: 0px;
.container {
max-width: 100%;
}
&.initial-navbar .navbar-nav .active,
&.initial-navbar li a:hover {
color: #2098d1;
transition: all 0.3s ease-out;
}
&.final-navbar .navbar-nav .active,
&.final-navbar li a:hover {
color: #2098d1;
transition: none;
border-bottom: none;
background: transparent;
}
&.final-navbar li a {
border-bottom: none;
}
.dropdown-divider {
border-top: 1px solid #c0ccda;
&.transparent-navbar {
.navbar-nav .active,
li a:hover {
color: get-light-color('accent-color');
@include transition();
}
}
#top-navbar-divider {
background: rgba(0, 0, 0, 0.6);
height: auto;
width: auto;
margin-right: 15px;
border-top: 1px solid #c0ccda;
}
.dropdown-menu {
text-align: center;
margin-bottom: 0.5rem;
margin-right: 1rem;
transition: all 0.3s ease-out;
@include transition();
}
.languageSelector {
position: fixed;
right: 0.5rem;
bottom: 1rem;
z-index: 10000000;
background-color: get-light-color('bg-primary');
box-shadow: $box-shadow;
}
#themeMenu {
width: 100%;
}
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
&.initial-navbar .navbar-nav .active,
&.initial-navbar li a:hover {
color: #2098d1;
transition: all 0.3s ease-out;
}
&.final-navbar .navbar-nav .active,
&.final-navbar li a:hover {
color: #2098d1;
transition: none;
border-bottom: none;
background: transparent;
}
&.final-navbar li a {
border-bottom: none;
}
.dropdown-divider {
border-top: 1px solid #c0ccda;
}
#top-navbar-divider {
background: rgba(0, 0, 0, 0.6);
height: auto;
width: auto;
margin-right: 15px;
}
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
&.initial-navbar .navbar-nav .active,
&.initial-navbar li a:hover {
color: #2098d1;
transition: all 0.3s ease-out;
}
&.final-navbar .navbar-nav .active,
&.final-navbar li a:hover {
color: #2098d1;
transition: none;
border-bottom: none;
background: transparent;
}
&.final-navbar li a {
border-bottom: none;
}
.dropdown-divider {
border-top: 1px solid #c0ccda;
}
#top-navbar-divider {
background: rgba(0, 0, 0, 0.6);
height: auto;
width: auto;
margin-right: 15px;
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
@include media('<=small') {
.dropdown-menu {
margin-left: -1rem;
margin-right: 0rem;
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
.feather-sidebar,
.feather-menu {
width: 1.5rem;
height: 1.5rem;
stroke: get-light-color('text-color');
}
html[data-theme='dark'] {
.top-navbar {
color: get-dark-color('heading-color');
background-color: get-dark-color('bg-primary');
.navbar-brand {
color: get-dark-color('heading-color');
}
.sidebar-icon {
filter: invert(0.5);
}
li {
a {
color: get-dark-color('heading-color');
}
}
#top-navbar-divider {
background-color: get-dark-color('muted-text-color');
}
.dropdown-menu {
box-shadow: $box-shadow;
background-color: get-dark-color('bg-card');
border: 1px solid rgba(get-dark-color('accent-color'), 0.1);
&.show {
a {
color: get-dark-color('heading-color') !important;
}
}
}
.navbar-collapse {
&.show,
&.collapsing {
background-color: get-dark-color('bg-primary');
li {
a {
color: get-dark-color('heading-color');
}
}
.navbar-nav {
.active {
color: get-dark-color('accent-color');
}
a:hover {
color: get-dark-color('accent-color');
}
}
}
}
&.transparent-navbar {
.navbar-brand {
color: get-dark-color('text-color');
}
li {
a {
color: get-dark-color('text-color');
}
}
.feather-menu {
stroke: get-dark-color('text-color');
}
}
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
img.theme-icon {
filter: invert(1);
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
.feather-sidebar,
.feather-menu {
stroke: get-dark-color('text-color');
}
}

View file

@ -2,162 +2,133 @@
order: 1;
flex: 20%;
max-width: 20%;
/* background-color: lightsalmon; */
transition: all ease-out 0.5s;
@include transition();
.sidebar-holder {
top: 2.5rem;
position: sticky;
background-color: #f9fafc;
background-color: get-light-color('bg-primary');
height: 100vh;
overflow: auto;
box-shadow: 0px 8px 56px rgba(15, 80, 100, 0.16);
transition: all ease-out 0.3s;
box-shadow: $box-shadow;
@include transition();
.sidebar {
background: get-light-color('bg-primary');
height: 100vh;
@include transition();
#search-box {
margin-left: 5%;
margin-right: 5%;
width: -webkit-fill-available;
height: 35px;
padding-left: 15px;
margin-top: 30px;
margin-bottom: 10px;
border-radius: 5px;
background-color: get-light-color('bg-secondary');
@include transition();
border: 1px solid rgba(get-light-color('accent-color'), 0.1);
&:focus {
border: 1pt solid get-light-color('accent-color');
outline: none;
}
}
#list-heading {
padding-left: 0px !important;
}
.sidebar-tree {
padding-left: 1rem;
position: relative;
width: -moz-max-content;
width: max-content;
.tree {
margin: 0;
padding: 0;
list-style: none;
li {
margin: 0;
padding: 0 1em;
line-height: 2em;
color: get-light-color('heading-color');
position: relative;
i {
color: get-light-color('heading-color');
font-size: 12px;
margin-right: 5px;
}
}
.shift-right {
margin-left: 5px;
}
.subtree {
padding-left: 0.7rem;
&:before {
content: '';
display: block;
width: 0;
position: absolute;
top: 2.5rem;
left: 1.5rem;
bottom: 0.9rem;
border-left: 1px solid get-light-color('text-color');
}
li {
&:before {
content: '';
display: block;
width: 18px;
height: 0;
border-top: 1px solid get-light-color('text-color');
margin-top: -1px;
position: absolute;
top: 18px;
left: -2px;
}
&:last-child:before {
background: get-light-color('bg-primary');
height: auto;
top: 1.1rem;
bottom: 0;
}
ul {
position: relative;
padding-left: 0.5rem;
display: none;
list-style: none;
&.active {
display: block;
}
&:before {
content: '';
display: block;
width: 0;
position: absolute;
top: -8px;
left: 6px;
bottom: 0.8rem;
border-left: 1px solid;
}
}
}
}
}
}
}
}
.sidebar {
background: #f9fafc;
height: 100vh;
transition: all ease-out 0.3s;
}
.sidebar-tree {
padding-left: 1rem;
position: relative;
width: -moz-max-content;
width: max-content;
}
#search-box {
margin-left: 5%;
margin-right: 5%;
width: -webkit-fill-available;
height: 35px;
padding-left: 15px;
margin-top: 30px;
margin-bottom: 10px;
border-radius: 5px;
background-color: #e5e9f2;
transition: all 0.3s ease-out;
border: 1px solid #c0ccda;
}
#search-box:focus {
border: 1pt solid #248aaa;
outline: none;
}
#list-heading {
padding-left: 0px !important;
}
.tree,
.tree ul {
margin: 0;
padding: 0;
list-style: none;
}
.tree li {
margin: 0;
padding: 0 1em;
line-height: 2em;
color: #3c4858;
position: relative;
}
.tree li a {
text-decoration: none;
color: #131313;
transition: all 0.3s ease-out;
}
.tree li a.active {
display: inline;
color: #2098d1;
}
.tree li a:hover {
margin-left: 3px;
color: #2098d1;
transition: all 0.3s ease-out;
}
.tree i {
color: #3c4858;
font-size: 12px;
margin-right: 5px;
}
.tree .shift-right {
margin-left: 5px;
}
.tree .active,
.tree .active > ul {
display: block;
}
.subtree {
padding-left: 0.7rem;
}
.subtree:before {
content: "";
display: block;
width: 0;
position: absolute;
top: 2.5rem;
left: 1.5rem;
bottom: 0.9rem;
border-left: 1px solid;
}
.subtree ul,
ul > ul {
position: relative;
padding-left: 0.5rem;
display: none;
}
.subtree ul:before {
content: "";
display: block;
width: 0;
position: absolute;
top: -10px;
left: 0.3rem;
bottom: 0.9rem;
border-left: 1px solid;
}
.subtree li:before {
content: "";
display: block;
width: 20px;
height: 0;
border-top: 1px solid;
margin-top: -1px;
position: absolute;
top: 18px;
left: -3px;
}
.subtree li:last-child:before {
background: #f9fafc;
height: auto;
top: 1.1rem;
bottom: 0;
}
a.focused {
color: #2098d1 !important;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
@include media('<=ultra-large') {
flex: 15%;
max-width: 15%;
@ -165,79 +136,96 @@
max-width: 100%;
}
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
@include media('<=extra-large') {
.sidebar-holder {
max-width: 20rem;
}
}
@media (max-width: 1200px) {
@include media('<=very-large') {
.sidebar-tree {
margin-left: 1rem;
}
}
/* IPad Pro */
@media (max-width: 1024px) {
@include media('<=large') {
flex: 0%;
max-width: 0%;
min-height: 100vh;
transition: all ease-out 0.3s;
@include transition();
.sidebar-holder {
position: sticky;
top: 2.5rem;
width: 100%;
padding-bottom: 1rem;
max-height: calc(100vh - 2.5rem);
}
&.hide {
&.expanded {
flex: 30%;
max-width: 30%;
margin-right: 0.5rem;
transition: all ease-out 0.3s;
@include transition();
}
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
@include media('<=medium') {
flex: 0%;
max-width: 0%;
min-height: 100vh;
transition: all ease-out 0.3s;
@include transition();
.sidebar-holder {
position: sticky;
top: 2.5rem;
width: 100%;
}
&.hide {
&.expanded {
flex: 40%;
max-width: 40%;
margin-right: 0.5rem;
transition: all ease-out 0.3s;
@include transition();
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
@include media('<=small') {
width: 100%;
min-height: 0;
max-height: 0;
max-width: 100%;
transition: all ease-out 0.5s;
@include transition();
&.hide {
.sidebar-holder {
max-height: 0;
height: -moz-fit-content;
height: fit-content;
overflow: hidden;
max-width: 100%;
@include transition();
.sidebar {
position: relative;
height: -moz-fit-content;
height: fit-content;
max-height: -moz-fit-content;
max-height: fit-content;
width: 100vw;
min-height: 0;
overflow: hidden;
@include transition();
.sidebar-tree {
margin-left: 0rem;
max-height: 0;
@include transition();
}
}
}
&.expanded {
margin-top: 2rem;
position: relative;
height: -moz-fit-content;
@ -245,55 +233,69 @@
flex: none;
max-height: 300vh;
max-width: 100%;
transition: all ease-out 0.5s;
@include transition();
.sidebar-holder {
max-height: 200vh;
@include transition();
.sidebar-tree {
max-height: 200vh;
@include transition();
}
}
}
}
}
.feather-plus-circle,
.feather-minus-circle {
width: 1rem;
height: 1rem;
}
html[data-theme='dark'] {
.sidebar-section {
.sidebar-holder {
max-height: 0;
height: -moz-fit-content;
height: fit-content;
overflow: hidden;
max-width: 100%;
transition: all ease-out 0.5s;
}
&.hide .sidebar-holder {
max-height: 200vh;
transition: all ease-out 0.5s;
}
.sidebar {
position: relative;
height: -moz-fit-content;
height: fit-content;
max-height: -moz-fit-content;
max-height: fit-content;
width: 100vw;
min-height: 0;
overflow: hidden;
transition: all ease-out 0.5s;
}
.sidebar-tree {
margin-left: 0rem;
max-height: 0;
transition: all 0.5s ease-out;
}
&.hide .sidebar-tree {
max-height: 200vh;
transition: all 0.5s ease-out;
background-color: get-dark-color('bg-primary');
.sidebar {
background: get-dark-color('bg-primary');
#search-box {
background-color: get-dark-color('bg-secondary');
border: 1px solid rgba(get-dark-color('accent-color'), 0.1);
&:focus {
border: 1pt solid get-dark-color('accent-color');
}
}
.sidebar-tree {
.tree {
li {
color: get-dark-color('heading-color');
i {
color: get-dark-color('heading-color');
}
}
.subtree {
&:before {
border-left: 1px solid get-dark-color('text-color');
}
li {
&:before {
border-top: 1px solid get-dark-color('text-color');
}
&:last-child:before {
background: get-dark-color('bg-primary');
}
}
}
}
}
}
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
}

View file

@ -1,20 +1,69 @@
#about {
@use 'sass:map';
$progress-bar-colors: (
'blue': #048dff,
'yellow': #eebb4d,
'pink': #ed63d2,
'green': #2dca73,
'sky': #00c9e3,
'orange': #ff7c7c,
);
@mixin circular-progress-bar-color() {
@each $color, $value in $progress-bar-colors {
&.#{$color} {
.circular-progress-bar {
border-color: $value;
}
}
}
}
@mixin circular-progress-animation-breakpoints() {
$progress: 50;
$duration: 0;
@for $i from 1 through 10 {
.circular-progress-percentage-#{$progress} {
animation: circular-loading-#{$progress} #{$duration}s linear forwards 1.8s;
}
$progress: $progress + 5;
$duration: $duration + 0.18;
}
}
@mixin circular-progress-animation-keyframes($progress, $degree, $keyframes) {
@for $i from 1 through $keyframes {
@keyframes circular-loading-#{$progress} {
0% {
transform: rotate(0);
}
100% {
transform: rotate(#{$degree}deg);
}
}
$progress: $progress + 5;
$degree: $degree + 18;
}
}
.about-section {
.social-link {
list-style: none;
padding: 0.2rem;
a {
font-size: 1.5rem;
color: get-light-color('text-color');
padding: 0.5rem;
&:hover {
color: get-light-color('accent-color');
@include transition();
}
}
}
.social-link a {
font-size: 1.5rem;
color: #3c4858;
padding: 0.5rem;
}
.social-link a:hover {
color: #248aaa;
transition: all 0.3s ease-in;
}
.circular-progress {
width: 150px;
height: 150px;
@ -23,365 +72,158 @@
margin: 0 auto;
box-shadow: none;
position: relative;
}
.circular-progress:after {
content: "";
width: 100%;
height: 100%;
border-radius: 50%;
border: 12px solid #f9fafc;
position: absolute;
top: 0;
left: 0;
}
.circular-progress > span {
width: 50%;
height: 100%;
overflow: hidden;
position: absolute;
top: 0;
z-index: 1;
}
.circular-progress .circular-progress-left {
left: 0;
}
.circular-progress .circular-progress-bar {
width: 100%;
height: 100%;
background: none;
border-width: 12px;
border-style: solid;
position: absolute;
top: 0;
}
.circular-progress .circular-progress-left .circular-progress-bar {
left: 100%;
border-top-right-radius: 80px;
border-bottom-right-radius: 80px;
border-left: 0;
transform-origin: center left;
}
.circular-progress .circular-progress-right {
right: 0;
}
.circular-progress .circular-progress-right .circular-progress-bar {
left: -100%;
border-top-left-radius: 80px;
border-bottom-left-radius: 80px;
border-right: 0;
transform-origin: center right;
animation: circular-loading-1 1.8s linear forwards;
}
.circular-progress .circular-progress-value {
width: 90%;
height: 90%;
padding: 1rem;
border-radius: 50%;
background: #3c4858;
font-size: 1rem;
color: #f9fafc;
line-height: initial;
text-align: center;
position: absolute;
top: 5%;
left: 5%;
display: flex;
justify-content: center;
align-items: center;
}
.circular-progress.blue .circular-progress-bar {
border-color: #048dff;
}
.circular-progress.yellow .circular-progress-bar {
border-color: #eebb4d;
}
.circular-progress.pink .circular-progress-bar {
border-color: #ed63d2;
}
.circular-progress.green .circular-progress-bar {
border-color: #2dca73;
}
.circular-progress.sky .circular-progress-bar {
border-color: #00c9e3;
}
.circular-progress.orange .circular-progress-bar {
border-color: #ff7c7c;
}
.circular-progress-percentage-50 {
animation: circular-loading-50 0s linear forwards 1.8s;
}
.circular-progress-percentage-55 {
animation: circular-loading-55 0.18s linear forwards 1.8s;
}
.circular-progress-percentage-60 {
animation: circular-loading-60 0.36s linear forwards 1.8s;
}
.circular-progress-percentage-65 {
animation: circular-loading-65 0.54s linear forwards 1.8s;
}
.circular-progress-percentage-70 {
animation: circular-loading-70 0.72s linear forwards 1.8s;
}
.circular-progress-percentage-75 {
animation: circular-loading-75 0.9s linear forwards 1.8s;
}
.circular-progress-percentage-80 {
animation: circular-loading-80 1.08s linear forwards 1.8s;
}
.circular-progress-percentage-85 {
animation: circular-loading-85 1.26s linear forwards 1.8s;
}
.circular-progress-percentage-90 {
animation: circular-loading-90 1.44s linear forwards 1.8s;
}
.circular-progress-percentage-95 {
animation: circular-loading-95 1.62s linear forwards 1.8s;
}
.circular-progress-percentage-100 {
animation: circular-loading-100 1.8s linear forwards 1.8s;
}
@keyframes circular-loading-50 {
0% {
transform: rotate(0deg);
&::after {
content: '';
width: 100%;
height: 100%;
border-radius: 50%;
border: 12px solid get-light-color('bg-primary');
position: absolute;
top: 0;
left: 0;
}
100% {
transform: rotate(0deg);
span {
width: 50%;
height: 100%;
overflow: hidden;
position: absolute;
top: 0;
z-index: 1;
}
.circular-progress-bar {
width: 100%;
height: 100%;
background: none;
border-width: 12px;
border-style: solid;
position: absolute;
top: 0;
}
.circular-progress-left {
left: 0;
.circular-progress-bar {
left: 100%;
border-top-right-radius: 80px;
border-bottom-right-radius: 80px;
border-left: 0;
transform-origin: center left;
}
}
.circular-progress-right {
right: 0;
.circular-progress-bar {
left: -100%;
border-top-left-radius: 80px;
border-bottom-left-radius: 80px;
border-right: 0;
transform-origin: center right;
animation: circular-loading-1 1.8s linear forwards;
}
}
.circular-progress-value {
width: 90%;
height: 90%;
padding: 1rem;
border-radius: 50%;
background: get-light-color('text-color');
font-size: 1rem;
color: get-light-color('bg-primary');
line-height: initial;
text-align: center;
position: absolute;
top: 5%;
left: 5%;
display: flex;
justify-content: center;
align-items: center;
}
@include circular-progress-bar-color();
@include circular-progress-animation-breakpoints();
@include circular-progress-animation-keyframes($progress: 50, $degree: 0, $keyframes: 10);
@include circular-progress-animation-keyframes($progress: 1, $degree: 180, $keyframes: 5);
}
@keyframes circular-loading-55 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(18deg);
}
}
@keyframes circular-loading-60 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(36deg);
}
}
@keyframes circular-loading-65 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(54deg);
}
}
@keyframes circular-loading-70 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(72deg);
}
}
@keyframes circular-loading-75 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(90deg);
}
}
@keyframes circular-loading-80 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(108deg);
}
}
@keyframes circular-loading-85 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(126deg);
}
}
@keyframes circular-loading-90 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(144deg);
}
}
@keyframes circular-loading-95 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(162deg);
}
}
@keyframes circular-loading-100 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(180deg);
}
}
@keyframes circular-loading-1 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(180deg);
}
}
@keyframes circular-loading-2 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(144deg);
}
}
@keyframes circular-loading-3 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(90deg);
}
}
@keyframes circular-loading-4 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(36deg);
}
}
@keyframes circular-loading-5 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(126deg);
}
}
@media only screen and (max-width: 990px) {
@include media('<=large') {
.circular-progress {
margin-bottom: 20px;
}
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
@include media('<=medium') {
.about-section.container {
max-width: 100%;
}
.circular-progress {
width: 135px;
height: 135px;
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
@include media('<=small') {
.circular-progress {
width: 150px;
height: 150px;
}
.circular-progress .circular-progress-value {
font-size: 1rem;
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
@include media('<=tiny') {
.col-6 {
flex: auto;
max-width: 100%;
}
.social-link {
flex-wrap: wrap;
}
}
}
.certificate-badge {
padding-left: 2rem;
padding-right: 2rem;
}
.circular-progress {
width: 200px;
height: 200px;
.circular-progress-left .circular-progress-bar {
border-top-right-radius: 100px;
border-bottom-right-radius: 100px;
}
.circular-progress-right .circular-progress-bar {
border-top-left-radius: 100px;
border-bottom-left-radius: 100px;
}
}
}
}
html[data-theme='dark'] {
.about-section {
.social-link {
a {
color: get-dark-color('text-color');
&:hover {
color: get-dark-color('accent-color');
}
}
}
.circular-progress {
&::after {
border: 12px solid get-dark-color('bg-primary');
}
.circular-progress-value {
background: get-dark-color('inverse-text-color');
color: get-dark-color('text-color');
}
}
}
}

View file

@ -1,97 +1,78 @@
.accomplishments-section {
h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
@include section-title-adjustment();
.card {
background: #fff;
border-top: 2px solid #248aaa;
background: get-light-color('bg-card');
border-top: 2px solid get-light-color('accent-color');
height: 100%;
&:hover,
&:focus {
border-top: 2px solid get-light-color('hover-over-accent-color');
}
.card-header {
background: none;
border: none;
.sub-title {
color: get-light-color('muted-text-color');
margin-top: 0.4rem;
}
}
.card-body {
padding: 0;
padding-left: 1rem;
padding-right: 1rem;
}
.card-footer {
background: get-light-color('bg-card');
border: none;
padding: 0;
padding-left: 0.7rem;
padding-bottom: 0.3rem;
}
}
.card .card-header {
background: none;
border: none;
}
.card .card-header .sub-title {
color: #8392a5;
margin-top: 0.4rem;
}
.card .sub-title :nth-child(2) {
float: none !important;
}
.card .card-body {
padding: 0;
padding-left: 1rem;
padding-right: 1rem;
}
.card .card-footer {
background: #fff;
border: none;
padding: 0;
padding-left: 0.7rem;
padding-bottom: 0.3rem;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
@include media('<=large') {
width: 100%;
padding: 0;
padding-left: 0.2rem;
padding-right: 0.2rem;
margin-top: 2rem;
.container {
max-width: 100%;
}
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
@include media('<=small') {
flex: 100%;
max-width: 100%;
margin-top: 2rem;
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
html[data-theme='dark'] {
.accomplishments-section {
.card {
background: get-dark-color('bg-card');
border-top: 2px solid get-dark-color('accent-color');
&:hover,
&:focus {
border-top: 2px solid get-dark-color('hover-over-accent-color');
}
.card-header {
.sub-title {
color: get-dark-color('muted-text-color');
}
}
.card-footer {
background: get-dark-color('bg-card');
}
}
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
}

View file

@ -1,180 +1,159 @@
.achievements-section {
@include section-title-adjustment();
.container {
padding-top: 0.5rem;
}
h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
#gallery .achievement-entry {
cursor: pointer;
margin-top: 5px;
margin-bottom: 5px;
margin-left: 7px;
margin-right: 7px;
z-index: 1;
background-color: #e5e9f2;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
position: relative;
overflow: hidden;
transition: all 0.3s ease-out;
}
#gallery .achievement-entry:hover {
cursor: pointer;
z-index: 1;
transform: scale(1.1);
transition: all 0.3s ease-out;
z-index: 20000;
}
#gallery .achievement-details {
cursor: pointer;
z-index: 1;
opacity: 1 !important;
transition: none !important;
transform: none !important;
}
#gallery .img-type-1 {
height: 300px;
}
#gallery .img-type-2 {
height: 146px;
margin-bottom: 8px;
}
#gallery .svg-inline--fa {
color: #8392a5;
background-color: rgba(0, 0, 0, 0.7);
padding: 10px;
font-size: 0rem;
opacity: 0;
}
#gallery .achievement-entry:hover .svg-inline--fa {
opacity: 1;
font-size: 1rem;
transition: all 0.3s ease-out;
}
#gallery .img-type-1 .svg-inline--fa {
margin-top: 135px;
}
#gallery .img-type-2 .svg-inline--fa {
margin-top: 50px;
}
#gallery .achievement-details.img-type-1 .svg-inline--fa,
.achievement-details.img-type-2 .svg-inline--fa {
margin-top: 0px !important;
transition: none !important;
float: right;
}
#gallery .achievement-entry .title {
color: #e5e9f2;
background-color: rgba(0, 0, 0, 0.7);
opacity: 0;
padding: 5px;
position: absolute;
bottom: 0px;
width: 100%;
margin-bottom: 0px;
bottom: -5px;
}
#gallery .achievement-entry:hover .title {
opacity: 1;
bottom: 0px;
transition: bottom 0.3s ease-out;
}
#gallery .caption {
background-color: rgba(0, 0, 0, 0.7);
bottom: 1rem;
left: 1rem;
color: #e5e9f2;
padding: 15px;
position: absolute;
transition: all 0.3s ease-out;
}
#gallery .caption h4 {
color: #e5e9f2;
}
#gallery .caption p {
font-size: 16px;
font-weight: 300;
color: #e5e9f2;
}
.hidden {
display: none !important;
}
#gallery .achievement-details {
height: 75vh !important;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
.container {
max-width: 100%;
#gallery {
.achievement-entry {
margin-top: 5px;
margin-bottom: 5px;
margin-left: 7px;
margin-right: 7px;
z-index: 1;
background-color: get-light-color('bg-secondary');
background-size: cover;
background-repeat: no-repeat;
background-position: center;
position: relative;
overflow: hidden;
@include transition();
.title {
color: get-light-color('inverse-text-color');
background-color: rgba(get-light-color('bg-primary-inverse'), 0.7);
opacity: 0;
padding: 5px;
position: absolute;
bottom: 0px;
width: 100%;
margin-bottom: 0px;
bottom: -5px;
}
&:hover {
cursor: pointer;
transform: scale(1.1);
@include transition();
z-index: 20000;
.svg-inline--fa {
opacity: 1;
font-size: 1rem;
@include transition();
}
.title {
opacity: 1;
bottom: 0px;
@include transition();
}
}
}
.col-md-6 {
flex: 50%;
width: 50%;
.achievement-details {
cursor: pointer;
z-index: 1;
height: 75vh !important;
opacity: 1 !important;
transition: none !important;
transform: none !important;
.img-type-1 .svg-inline--fa,
.img-type-2 .svg-inline--fa {
margin-top: 0px !important;
transition: none !important;
float: right;
}
}
.img-type-1 {
height: 300px;
.svg-inline--fa {
margin-top: 135px;
}
}
.img-type-2 {
height: 146px;
margin-bottom: 8px;
.svg-inline--fa {
margin-top: 50px;
}
}
.svg-inline--fa {
color: get-light-color('muted-text-color');
background-color: rgba(get-light-color('bg-primary-inverse'), 0.7);
padding: 10px;
font-size: 0rem;
opacity: 0;
}
.caption {
background-color: rgba(get-light-color('bg-primary-inverse'), 0.7);
bottom: 1rem;
left: 1rem;
color: get-light-color('inverse-text-color');
padding: 15px;
position: absolute;
@include transition();
h4 {
color: get-light-color('inverse-text-color');
}
p {
font-size: 16px;
font-weight: 300;
color: get-light-color('inverse-text-color');
}
}
@include media('<=medium') {
.container {
max-width: 100%;
}
.col-md-6 {
flex: 50%;
width: 50%;
}
}
@include media('<=small') {
#gallery .achievement-entry:hover {
transform: scale(1.05);
}
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
#gallery .achievement-entry:hover {
transform: scale(1.05);
}
html[data-theme='dark'] {
.achievements-section {
#gallery {
.achievement-entry {
background-color: get-dark-color('bg-secondary');
.title {
color: get-dark-color('inverse-text-color');
background-color: rgba(get-dark-color('bg-primary-inverse'), 0.7);
}
}
.svg-inline--fa {
color: get-dark-color('muted-text-color');
background-color: rgba(get-dark-color('bg-primary-inverse'), 0.7);
}
.caption {
background-color: rgba(get-dark-color('bg-primary-inverse'), 0.7);
color: get-dark-color('inverse-text-color');
h4 {
color: get-dark-color('inverse-text-color');
}
p {
color: get-dark-color('inverse-text-color');
}
}
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
}

View file

@ -1,203 +1,234 @@
.education-section {
@include section-title-adjustment();
.card {
&:hover,
&:focus {
border-left: 2px solid get-light-color('accent-color');
}
}
.education-info-table {
width: 100%;
border: none;
background: none;
}
.education-info-table tr:hover {
background: none;
}
.education-info-table tr,
.education-info-table th,
.education-info-table td {
border: none;
padding: 0;
background: none;
}
.timeframe {
color: #8392a5;
text-align: right;
}
h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
.icon {
width: 2rem;
padding-left: 0;
padding-right: 0;
position: relative;
}
.icon .hline {
position: absolute;
left: 1rem;
top: 0;
background-color: #248aaa;
height: 100%;
width: 2px;
}
.education-info-table tr:first-child .hline {
height: 65%;
top: auto;
}
.education-info-table tr:last-child .hline {
height: 50%;
}
.icon-holder {
background-color: #248aaa;
border-radius: 50%;
height: 2rem;
width: 2rem;
padding: 0.2rem;
text-align: center;
color: #e5e9f2;
position: relative;
}
.line {
width: 5%;
padding-left: 0;
padding-right: 0;
}
.line div {
height: 2px;
/* width: 100%; */
margin-right: -1px;
background-color: #248aaa;
}
.degree-info {
padding: 1rem;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
border-left: 2px solid #248aaa;
border-top: 1px solid #c0ccda;
border-bottom: 1px solid #c0ccda;
border-right: 1px solid #c0ccda;
border-radius: 5px;
}
.degree-info h5 {
margin-bottom: 0.3rem;
}
.taken-courses table {
margin-left: 1rem;
width: 100%;
transition: all 0.3s ease-out;
background: none;
border: none;
}
.taken-courses tr {
height: auto !important;
}
.taken-courses tr,
.taken-courses td,
.taken-courses th {
background: none;
border: none;
color: #212529;
}
.taken-courses th.course-name-header{
width: 50%;
}
.taken-courses .hidden-course {
display: none;
transition: all 1s ease-out;
}
.taken-courses ul {
margin-bottom: 0;
.icon {
width: 2rem;
padding-left: 0;
padding-right: 0;
position: relative;
.hline {
position: absolute;
left: 1rem;
top: 0;
background-color: get-light-color('accent-color');
height: 100%;
width: 2px;
}
.icon-holder {
background-color: get-light-color('accent-color');
border-radius: 50%;
height: 2rem;
width: 2rem;
padding: 0.2rem;
text-align: center;
color: get-light-color('text-over-accent-color');
position: relative;
}
}
tr,
th,
td {
border: none !important;
padding: 0;
background: none !important;
}
tr {
&:hover {
background: none !important;
}
&:first-child {
.hline {
height: 65%;
top: auto;
}
}
&:last-child {
.hline {
height: 50%;
}
}
.line {
width: 5%;
padding-left: 0;
padding-right: 0;
div {
height: 2px;
margin-right: -1px;
background-color: get-light-color('accent-color');
}
}
.details {
.degree-info {
padding: 1rem;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
border-left: 2px solid get-light-color('accent-color');
border-top: 1px solid get-light-color('bg-primary');
border-bottom: 1px solid get-light-color('bg-primary');
border-right: 1px solid get-light-color('bg-primary');
border-radius: 5px;
h5 {
margin-bottom: 0.3rem;
}
.timeframe {
color: get-light-color('muted-text-color');
text-align: right;
}
.taken-courses {
table {
margin-left: 1rem;
width: 100%;
@include transition();
background: none;
border: none;
tr,
td,
th {
background: none;
border: none;
color: get-light-color('text-color');
}
tr {
height: auto !important;
}
th {
.course-name-header {
width: 50%;
}
}
.hidden-course {
display: none;
@include transition();
}
ul {
margin-bottom: 0;
}
}
}
}
}
}
}
.hidden {
display: none;
}
/*============ Education Alter Template =============*/
.education-alt .degree-info {
border-right: 2px solid #248aaa;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
@include media('<=large') {
.container {
padding-left: 0;
}
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
@include media('<=small') {
padding-left: 0.5rem;
padding-right: 0.5rem;
.container {
padding-right: 0;
}
.icon {
display: none;
}
.line {
display: none;
}
.timeframe {
text-align: left;
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
.education-alt .degree-info {
border-right: 2px solid get-light-color('accent-color');
}
html[data-theme='dark'] {
.education-section {
.card {
&:hover,
&:focus {
border-left: 2px solid get-dark-color('accent-color');
}
}
.education-info-table {
.icon {
.hline {
background-color: get-dark-color('accent-color');
}
.icon-holder {
background-color: get-dark-color('accent-color');
color: get-dark-color('text-over-accent-color');
}
}
tr {
.line {
div {
background-color: get-dark-color('accent-color');
}
}
.details {
.degree-info {
border-left: 2px solid get-dark-color('accent-color');
border-top: 1px solid get-dark-color('bg-primary');
border-bottom: 1px solid get-dark-color('bg-primary');
border-right: 1px solid get-dark-color('bg-primary');
.timeframe {
color: get-dark-color('muted-text-color');
}
.taken-courses {
table {
tr,
td,
th {
color: get-dark-color('text-color');
}
}
}
&:hover{
border: 1px solid rgba(get-dark-color('accent-color'),0.2);
border-left: 2px solid get-dark-color('accent-color');
}
}
}
}
}
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
.education-alt .degree-info {
border-right: 2px solid get-dark-color('accent-color');
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
}

View file

@ -1,171 +1,145 @@
.experiences-section {
@include section-title-adjustment();
padding-bottom: 1rem;
.timeline {
margin-top: 1.5rem !important;
}
h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
ul {
padding-left: 1rem;
& > li {
margin-left: 0;
color: get-light-color('text-color');
}
}
ul > li {
margin-left: 0;
color: #3c4858;
}
.designation {
font-weight: 600;
}
.circle {
padding: 13px 20px;
border-radius: 50%;
background-color: #248aaa;
color: #f9fafc;
background-color: get-light-color('accent-color');
color: get-light-color('text-over-accent-color');
max-height: 50px;
z-index: 2;
}
.timeline .vertical-line {
align-self: stretch;
.timeline {
margin-top: 1.5rem !important;
.vertical-line {
align-self: stretch;
&::after {
content: '';
position: absolute;
border-left: 3px solid get-light-color('accent-color');
z-index: 1;
height: 100%;
left: 50%;
}
&:nth-child(even)::after {
left: calc(50% - 3px) !important;
}
}
.horizontal-line {
div {
padding: 0;
height: 40px;
}
hr {
border-top: 3px solid get-light-color('accent-color');
margin: 0;
top: 17px;
position: relative;
}
.timeline-side-div {
display: flex;
overflow: hidden;
}
.corner {
border: 3px solid get-light-color('accent-color');
width: 100%;
position: relative;
border-radius: 15px;
}
}
.row {
&:nth-child(2n) {
div {
&:nth-child(1) .corner {
left: 50%;
top: -50%;
}
&:nth-child(3) .corner {
left: -50%;
top: calc(50% - 3px);
}
}
}
&:nth-child(4n) {
div {
&:nth-child(1) .corner {
left: 50%;
top: calc(50% - 3px);
}
&:nth-child(3) .corner {
left: -50%;
top: -50%;
}
}
}
}
}
.timeline .vertical-line::after {
content: "";
position: absolute;
border-left: 3px solid #248aaa;
z-index: 1;
height: 100%;
left: 50%;
}
.timeline .vertical-line:nth-child(even)::after {
left: calc(50% - 3px) !important;
}
.timeline .horizontal-line div {
padding: 0;
height: 40px;
}
.timeline .horizontal-line hr {
border-top: 3px solid #248aaa;
margin: 0;
top: 17px;
position: relative;
}
.timeline .horizontal-line .timeline-side-div {
display: flex;
overflow: hidden;
}
.timeline .horizontal-line .corner {
border: 3px solid #248aaa;
width: 100%;
position: relative;
border-radius: 15px;
}
.timeline .row:nth-child(2n) div:nth-child(1) .corner {
left: 50%;
top: -50%;
}
.timeline .row:nth-child(2n) div:nth-child(3) .corner {
left: -50%;
top: calc(50% - 3px);
}
.timeline .row:nth-child(4n) div:nth-child(1) .corner {
left: 50%;
top: calc(50% - 3px);
}
.timeline .row:nth-child(4n) div:nth-child(3) .corner {
left: -50%;
top: -50%;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
@include media('<=medium') {
.container {
max-width: 100%;
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
.timeline .row:nth-child(4n) div:nth-child(3) .corner {
left: -55%;
top: -50%;
}
.timeline .row:nth-child(2n) div:nth-child(1) .corner {
left: 55%;
top: -50%;
@include media('<=small') {
.container {
padding-left: 0px;
padding-right: 0px;
}
.timeline {
.vertical-line {
visibility: hidden;
}
.horizontal-line {
visibility: hidden;
}
}
}
}
html[data-theme='dark'] {
.experiences-section {
ul {
& > li {
color: get-dark-color('text-color');
}
}
.circle {
background-color: get-dark-color('accent-color');
color: get-dark-color('text-over-accent-color');
}
.timeline {
.vertical-line {
&::after {
border-left: 3px solid get-dark-color('accent-color');
}
}
.horizontal-line {
hr {
border-top: 3px solid get-dark-color('accent-color');
}
.corner {
border: 3px solid get-dark-color('accent-color');
}
}
}
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
.timeline .row:nth-child(4n) div:nth-child(3) .corner {
left: -60%;
top: -50%;
}
.timeline .row:nth-child(2n) div:nth-child(1) .corner {
left: 60%;
top: -50%;
}
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
.timeline .row:nth-child(4n) div:nth-child(3) .corner {
left: -64%;
top: -50%;
}
.timeline .row:nth-child(2n) div:nth-child(1) .corner {
left: 64%;
top: -50%;
}
}
}

View file

@ -0,0 +1,112 @@
.footer {
color: get-light-color('muted-text-color') !important;
background-color: get-light-color('footer-color');
position: relative;
z-index: 9999;
h5 {
color: get-light-color('inverse-text-color');
}
a {
color: get-light-color('muted-text-color');
@include transition();
&:hover {
margin-left: 5px;
text-decoration: get-light-color('muted-text-color') underline;
@include transition();
}
}
ul {
list-style: none;
padding-left: 0;
li {
margin-top: 5px;
}
}
hr {
background-color: get-light-color('muted-text-color');
}
p:first-child {
color: get-light-color('inverse-text-color');
}
input {
background-color: get-light-color('inverse-text-color');
&:focus {
background-color: get-light-color('bg-secondary');
}
}
#disclaimer {
color: get-light-color('muted-text-color') !important;
text-align: justify;
& > strong {
color: get-light-color('inverse-text-color') !important;
}
}
#theme {
color: get-light-color('inverse-text-color');
img {
width: 32px;
display: inline-block;
}
}
#hugo {
&:hover {
margin-right: 5px;
@include transition();
}
img {
display: inline-block;
}
}
}
html[data-theme='dark'] {
.footer {
color: get-dark-color('muted-text-color') !important;
background-color: get-dark-color('footer-color');
h5 {
color: get-dark-color('heading-color');
}
a {
color: get-dark-color('muted-text-color');
&:hover {
text-decoration: get-dark-color('muted-text-color') underline;
}
}
hr {
background-color: get-dark-color('muted-text-color');
}
p:first-child {
color: get-dark-color('muted-text-color');
}
input {
background-color: get-dark-color('bg-primary');
&:focus {
background-color: get-dark-color('bg-secondary');
}
}
#disclaimer {
color: get-dark-color('muted-text-color') !important;
& > strong {
color: get-dark-color('text-color') !important;
}
}
#theme {
color: get-dark-color('text-color');
}
}
}

View file

@ -2,7 +2,7 @@
height: 100vh;
padding: 0;
margin: 0;
color: #f9fafc;
color: get-light-color('text-over-accent-color');
overflow: hidden;
.background {
@ -16,12 +16,12 @@
filter: blur(3px);
background-size: cover;
}
.arrow-center {
display: flex;
justify-content: center;
}
/*
Resolves https://github.com/hugo-toha/toha/issues/70
@ -34,45 +34,46 @@
background-attachment: scroll;
}
}
.content {
position: relative;
top: -65%;
height: 60%;
}
img {
width: 148px;
height: 148px;
background-color: #e7e7ef;
background-color: get-light-color('bg-secondary');
padding: 5px;
margin-bottom: 10px;
}
.greeting, .greeting-subtitle {
color: #f9fafc;
.greeting,
.greeting-subtitle {
color: get-light-color('text-over-accent-color');
}
.typing-carousel {
font-size: 14pt;
color: #f0f0f0;
color: get-light-color('text-over-accent-color');
}
#typing-carousel-data {
display: none;
}
.arrow {
position: absolute;
color: #f9fafc;
color: get-light-color('text-over-accent-color');
font-size: 1.5rem;
bottom: 0;
}
.bounce {
animation: bounce 2s infinite;
}
@keyframes bounce {
0%,
20%,
@ -88,64 +89,43 @@
transform: translateY(-15px);
}
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
@include media('<=small') {
.content {
position: relative;
top: -75%;
height: 65%;
}
img {
width: 140px;
max-width: 50%;
height: auto;
}
.greeting {
font-size: 24pt;
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
html[data-theme='dark'] {
.home {
color: get-dark-color('text-over-accent-color');
img {
background-color: get-dark-color('bg-secondary');
}
.greeting,
.greeting-subtitle {
color: get-dark-color('text-over-accent-color');
}
.typing-carousel {
color: get-dark-color('text-over-accent-color');
}
.arrow {
color: get-dark-color('text-over-accent-color');
}
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
}

View file

@ -1,71 +1,59 @@
.projects-section {
.card .card-header {
background-color: #f9fafc;
padding: 0.7rem;
padding-bottom: 0rem;
text-decoration: none;
.card {
.card-header {
background-color: get-light-color('bg-card');
padding: 0.7rem;
padding-bottom: 0rem;
text-decoration: none;
.card-img-xs {
margin-right: 0.5rem;
}
.sub-title {
color: get-light-color('muted-text-color');
margin-top: 0.4rem;
span {
&:nth-child(1) {
float: left;
}
&:nth-child(2) {
float: right;
}
}
}
}
.card-body {
padding: 0.7rem;
}
}
.card .card-img-xs {
margin-right: 0.5rem;
}
.card .card-header .sub-title span:nth-child(1) {
float: left;
}
.card .card-header .sub-title span:nth-child(2) {
float: right;
}
.card .card-body {
padding: 0.7rem;
}
.card .card-header .sub-title {
color: #8392a5;
margin-top: 0.4rem;
}
.filtr-projects {
padding: 1rem !important;
}
.project-card-footer {
display: flex;
}
.project-tags-holder {
width: 70%;
}
.project-btn-holder {
width: 30%;
display: flex;
justify-content: flex-end;
flex-direction: column;
span {
display: flex;
justify-content: flex-end;
}
}
.project-btn-holder span {
justify-content: flex-end;
display: flex;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
@include media('<=large') {
padding-left: 0;
padding-right: 0;
width: 100%;
@ -77,58 +65,32 @@
padding: 0;
}
.filtr-item {
padding-left: 0.2rem;
padding-right: 0.2rem;
}
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
padding-left: 0;
padding-right: 0;
width: 100%;
.container {
max-width: 100%;
}
.filtr-projects {
padding: 0;
}
.filtr-item {
padding-left: 0.2rem;
padding-right: 0.2rem;
flex: 50%;
padding-left: 0.2rem;
padding-right: 0.2rem;
max-width: calc(100% / 2 - 0.2rem);
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
@include media('<=small') {
.btn {
margin-top: 0.3125rem;
}
.filtr-item {
flex: 100%;
max-width: 100%;
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
html[data-theme='dark'] {
.projects-section {
.card {
.card-header {
background-color: get-dark-color('bg-card');
.sub-title {
color: get-dark-color('muted-text-color');
}
}
}
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
}

View file

@ -1,82 +1,59 @@
.publications-section {
h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
@include section-title-adjustment();
.card {
background: #fff;
border-top: 2px solid #248aaa;
background: get-light-color('bg-card');
border-top: 2px solid get-light-color('accent-color');
&:hover,
&:focus {
border-top: 2px solid get-light-color('accent-color');
}
.card-header {
background: none;
border: none;
display: flex;
flex-direction: column;
.sub-title {
color: get-light-color('muted-text-color');
margin-top: 0.4rem;
span:nth-child(2) {
float: right !important;
}
}
}
.card-body {
padding: 0;
padding-left: 1rem;
padding-right: 1rem;
}
.card-footer {
background: get-light-color('bg-card');
border: none;
padding: 0;
padding-left: 1rem;
padding-right: 1rem;
padding-bottom: 0.3rem;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
}
.card .card-header {
background: none;
border: none;
display: flex;
flex-direction: column;
}
.card .card-header .sub-title {
color: #8392a5;
margin-top: 0.4rem;
}
.card .sub-title :nth-child(2) {
float: right !important;
}
.card .card-body {
padding: 0;
padding-left: 1rem;
padding-right: 1rem;
}
.card .card-footer {
background: #fff;
border: none;
padding: 0;
padding-left: 1rem;
padding-right: 1rem;
padding-bottom: 0.3rem;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.card .card-footer .tags {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
}
.card .card-footer .tags .badge {
cursor: auto;
}
.filtr-publications {
padding: 1rem !important;
}
.btn-group{
.btn-group {
justify-content: center;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
@include media('<=large') {
padding-left: 0;
padding-right: 0;
width: 100%;
@ -84,66 +61,72 @@
.container {
max-width: 100%;
}
.filtr-publications {
padding: 0;
}
.pub-filtr-item {
padding-left: 0.2rem;
padding-right: 0.2rem;
}
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
padding-left: 0;
padding-right: 0;
width: 100%;
.container {
max-width: 100%;
}
.filtr-publications {
padding: 0;
}
.pub-filtr-item {
padding-left: 0.2rem;
padding-right: 0.2rem;
}
}
@include media('<=medium') {
.pub-filtr-item {
flex: 100%;
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
.btn {
margin-top: 0.3125rem;
}
@include media('<=small') {
.pub-filtr-item {
flex: 100%;
max-width: 100%;
}
.card .card-footer .tags {
flex: 100%;
.details-btn {
.btn {
margin-top: 0.5rem;
margin-left: auto;
}
}
.card {
.card-footer {
padding-left: 0.5rem;
.tags {
flex: 100%;
max-width: 100%;
.btn {
margin-top: 0.2rem;
}
}
}
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
html[data-theme='dark'] {
.publications-section {
.card {
background: get-dark-color('bg-card');
border-top: 2px solid get-dark-color('accent-color');
&:hover,
&:focus {
border-top: 2px solid get-dark-color('accent-color');
}
.card-header {
.sub-title {
color: get-dark-color('muted-text-color');
}
}
.card-footer {
background: get-dark-color('bg-card');
}
}
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
}

View file

@ -2,110 +2,31 @@
.container {
padding-top: 1rem;
}
h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
.card {
height: 100%;
min-height: 100%;
}
.card .card-footer span {
font-size: 10pt;
color: #6c757d !important;
padding-top: 5px;
}
.card .card-footer {
background: #fff;
margin-top: auto;
}
.post-card-link {
text-decoration: none;
}
.post-summary {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
/* line-height: 24px; fallback */
max-height: 144px; /* fallback */
-webkit-line-clamp: 5; /* number of lines to show */
-webkit-box-orient: vertical;
h1 > span {
margin-top: -55px; /* Size of fixed header */
padding-bottom: 55px;
display: block;
}
.taxonomy-terms {
text-align: left;
@include media('<medium') {
.post-card {
margin-left: 1%;
margin-right: 1%;
width: 98%;
}
}
.taxonomy-terms li {
font-size: 0.5em;
list-style-type: none;
display: inline-block;
background: #248aaa;
margin-left: 0.2em;
margin-right: 0.2em;
}
.taxonomy-terms a {
color: #f9fafc;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
@include media('>=medium', '<large') {
.container {
max-width: 100%;
}
.post-card {
width: 50%;
width: calc(100% / 2);
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
@include media('>=large') {
.post-card {
width: 100%;
width: calc(100% / 3);
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
}

View file

@ -1,87 +1,46 @@
.skills-section {
.card .card-head {
background-color: #f9fafc;
height: -moz-fit-content;
height: fit-content;
padding: 0.7rem;
padding-bottom: 0rem;
border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.125);
}
h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
.skill-card-link {
text-decoration: none;
}
.card .card-img-xs {
margin-right: 0.5rem;
margin-bottom: 0.75rem;
}
.card {
margin-top: 0.5rem;
margin-bottom: 0.5rem;
height: 100%;
.card-head {
background-color: get-light-color('bg-primary') !important;
height: -moz-fit-content;
height: fit-content;
padding: 0.7rem;
padding-bottom: 0rem;
border-bottom: 0.0625rem solid rgba(get-light-color('accent-color'), 0.4);
.card-img-xs {
margin-right: 0.5rem;
margin-bottom: 0.75rem;
}
}
.card-body {
padding-top: 0.2rem;
padding-left: 0.7rem;
}
}
.card .card-body {
padding-top: 0.2rem;
padding-left: 0.7rem;
}
/* ============= Device specific fixes ======= */
/* Large screens such as TV */
@media only screen and (min-width: 1824px) {
}
/* Extra large devices (large desktops, 1200px and up) */
@media (max-width: 1400px) {
}
@media (max-width: 1200px) {
}
/* IPad Pro */
@media (max-width: 1024px) {
}
/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
}
/* Medium devices (tablets, 768px and up) */
@media only screen and (max-width: 768px) {
@include media('<=medium') {
padding-left: 0;
padding-right: 0;
.container {
max-width: 95%;
}
}
/* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) {
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
}
}
html[data-theme='dark'] {
.skills-section {
.card {
.card-head {
background-color: get-dark-color('bg-card') !important;
border-bottom: 0.0625rem solid rgba(get-dark-color('accent-color'), 0.4);
}
}
}
}

View file

@ -0,0 +1,95 @@
@use 'sass:map';
$breakpoints: (
tiny: 320px,
small: 640px,
medium: 768px,
large: 1024px,
very-large: 1280px,
extra-large: 1536px,
ultra-large: 2560px,
);
// Color are chosen from TailwindCSS color scheme
// https://tailwindcss.com/docs/customizing-colors
// transitions
$transition-duration: 0.3s;
$transition-type: ease-out;
// borders and shadows
$box-shadow: 0px 8px 56px rgba(15, 80, 100, 0.16);
// themes
$themes: (
'light': (
// cyan 600
'accent-color': #0891b2,
// cyan 500
'hover-over-accent-color': #06b6d4,
// zinc 200
'text-over-accent-color': #e4e4e7,
// slate 50
'bg-primary': #f8fafc,
// slate 900
'bg-primary-inverse': #0f172a,
// slate 200
'bg-secondary': #e2e8f0,
'bg-card': #fff,
// slate 800
'heading-color': #1e293b,
// slate 700
'text-color': #334155,
// slate 300
'inverse-text-color': #cbd5e1,
// slate 500
'muted-text-color': #64748b,
// red 600
'inline-code-color': #dc2626,
// amber 200
'highlight-color': #fde68a,
// slate 900
'footer-color': #0f172a,
),
'dark': (
// cyan 600
'accent-color': #0891b2,
// cyan 500
'hover-over-accent-color': #06b6d4,
// zinc 200
'text-over-accent-color': #e4e4e7,
// gray-800
'bg-primary': #1f2937,
// slate 900
'bg-primary-inverse': #0f172a,
// gray 900
'bg-secondary': #111827,
// slate 800
'bg-card': #1e293b,
// slate 100
'heading-color': #f1f5f9,
// slate 300
'text-color': #cbd5e1,
// slate 900
'inverse-text-color': #0f172a,
// slate 500
'muted-text-color': #64748b,
// red 600
'inline-code-color': #dc2626,
// amber 200
'highlight-color': #fde68a,
// slate 900
'footer-color': #0f172a,
),
);
$brand-colors: (
'facebook': #3b5998,
'twitter': #1da1f2,
'linkedin': #0077b5,
'reddit': #ff4500,
'tumblr': #35465c,
'pocket': #ef4056,
'diaspora': #1e1e1e,
'whatsapp': #25d366,
);

View file

@ -8,12 +8,6 @@ videoplayer:
styles:
- plyr/dist/plyr
darkmode:
services:
darkreader:
styles:
- ./colortheme/colortheme
syntaxhighlight:
services:
hljs:

View file

@ -81,15 +81,6 @@ params:
# Enable dark theme
darkMode:
enable: false
services:
darkreader:
defaultColorScheme: system # options are 'system', 'dark', 'light'
fixes:
invert: ['img[src$=".svg"]'] # inverts svg colors.
theme:
brightness: 100
contrast: 100
sepia: 0
# Enable and configure portfolio
portfolio:

13
exampleSite/package-lock.json generated Normal file
View file

@ -0,0 +1,13 @@
{
"name": "exampleSite",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "exampleSite",
"version": "0.1.0",
"devDependencies": {}
}
}
}

View file

@ -0,0 +1,4 @@
{
"name": "exampleSite",
"version": "0.1.0"
}

10
exampleSite/package.json Normal file
View file

@ -0,0 +1,10 @@
{
"comments": {
"dependencies": {},
"devDependencies": {}
},
"dependencies": {},
"devDependencies": {},
"name": "exampleSite",
"version": "0.1.0"
}

View file

@ -1,5 +1,5 @@
{{ define "navbar" }}
{{ partial "navigators/navbar-2.html" (dict "baseURL" site.BaseURL "title" site.Title "hasToggleButton" false) }}
{{ partial "navigators/navbar.html" . }}
{{ end }}
{{ define "content" }}

View file

@ -11,11 +11,21 @@
<!--================= add analytics if enabled =========================-->
{{- partial "analytics.html" . -}}
<script>
theme = localStorage.getItem('darkmode:color-scheme') || 'system';
if (theme == 'system') {
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
theme = 'dark';
} else {
theme = 'light';
}
}
document.documentElement.setAttribute('data-theme', theme);
</script>
</head>
<body class="type-{{ .Page.Type }} kind-{{ .Page.Kind }}" data-spy="scroll" data-target="#TableOfContents" data-offset="80">
<div class="container-fluid bg-dimmed wrapper">
<div class="container-fluid bg-secondary wrapper">
<!----- ADD NAVBAR --------------->
{{ block "navbar" . }} {{ end }}

View file

@ -1,5 +1,5 @@
{{ define "navbar" }}
{{ partial "navigators/navbar-2.html" . }}
{{ partial "navigators/navbar.html" . }}
{{ end }}
{{ define "sidebar" }}

View file

@ -1,5 +1,5 @@
{{ define "navbar" }}
{{ partial "navigators/navbar-2.html" . }}
{{ partial "navigators/navbar.html" . }}
{{ end }}
{{ define "sidebar" }}

View file

@ -3,7 +3,7 @@
{{ end }}
{{ define "navbar" }}
{{ partial "navigators/navbar-2.html" . }}
{{ partial "navigators/navbar.html" . }}
{{ end }}
{{ define "sidebar" }}
@ -39,21 +39,14 @@
<div class="author-profile ml-auto align-self-lg-center">
<img class="rounded-circle" src='{{ partial "helpers/get-author-image.html" . }}' alt="Author Image">
<h5 class="author-name">{{ partial "helpers/get-author-name.html" . }}</h5>
<p>{{ .Page.Date | time.Format ":date_full" }}{{ if site.Params.features.readingTime }} | {{ .ReadingTime }} minute{{ if (ne .ReadingTime 1) }}s{{ end }}{{ end }}</p>
<p class="text-muted">{{ .Page.Date | time.Format ":date_full" }}{{ if site.Params.features.readingTime }} | {{ .ReadingTime }} minute{{ if (ne .ReadingTime 1) }}s{{ end }}{{ end }}</p>
</div>
<div class="title">
<h1>{{ .Page.Title }}</h1>
</div>
{{ if site.Params.features.tags.enable }}
<div class="taxonomy-terms">
<ul style="padding-left: 0;">
{{ range .Params.tags }}
{{ $url:= printf "tags/%s/" . }}
<li class="rounded"><a href="{{ $url | urlize | relLangURL }}" class="btn, btn-sm">{{ . }}</a></li>
{{ end }}
</ul>
</div>
{{partial "misc/tags.html" .Params.tags }}
{{ end }}
<div class="post-content" id="post-content">
{{ .Page.Content }}
@ -62,56 +55,56 @@
<!-- Share or Contribute -->
<div class="row pl-3 pr-3">
<!--Social Media Share Buttons-->
<div class="col-md-6 share-buttons">
{{ if site.Params.features.blog.shareButtons }}
<div class="col-md-6 share-buttons">
{{ if site.Params.features.blog.shareButtons }}
<strong>{{ i18n "share_on" }}:</strong>
{{ if site.Params.features.blog.shareButtons.facebook }}
<a class="btn btn-sm facebook-btn" href="https://www.facebook.com/sharer.php?u={{ .Permalink }}" target="_blank">
<a class="btn icon-button bg-facebook" href="https://www.facebook.com/sharer.php?u={{ .Permalink }}" target="_blank">
<i class="fab fa-facebook"></i>
</a>
{{ end }}
{{ if site.Params.features.blog.shareButtons.twitter }}
<a class="btn btn-sm twitter-btn" href="https://twitter.com/share?url={{ .Permalink }}&text={{ .Title }}&via={{- site.Title -}}" target="_blank">
<a class="btn icon-button bg-twitter" href="https://twitter.com/share?url={{ .Permalink }}&text={{ .Title }}&via={{- site.Title -}}" target="_blank">
<i class="fab fa-twitter"></i>
</a>
{{ end }}
{{ if site.Params.features.blog.shareButtons.reddit }}
<a class="btn btn-sm reddit-btn" href="https://reddit.com/submit?url={{ .Permalink }}&title={{ .Title }}" target="_blank">
<a class="btn icon-button bg-reddit" href="https://reddit.com/submit?url={{ .Permalink }}&title={{ .Title }}" target="_blank">
<i class="fab fa-reddit"></i>
</a>
{{ end }}
{{ if site.Params.features.blog.shareButtons.tumblr }}
<a class="btn btn-sm tumblr-btn" href="https://www.tumblr.com/share/link?url={{ .Permalink }}&name={{ .Title }}{{- with .Params.description -}}&description={{- . -}}{{- end -}}" target="_blank">
<a class="btn icon-button bg-tumblr" href="https://www.tumblr.com/share/link?url={{ .Permalink }}&name={{ .Title }}{{- with .Params.description -}}&description={{- . -}}{{- end -}}" target="_blank">
<i class="fab fa-tumblr"></i>
</a>
{{ end }}
{{ if site.Params.features.blog.shareButtons.pocket }}
<a class="btn btn-sm pocket-btn" href="https://getpocket.com/save?url={{ .Permalink }}&title={{ .Title }}" target="_blank">
<a class="btn icon-button bg-pocket" href="https://getpocket.com/save?url={{ .Permalink }}&title={{ .Title }}" target="_blank">
<i class="fab fa-get-pocket"></i>
</a>
{{ end }}
{{ if site.Params.features.blog.shareButtons.linkedin }}
<a class="btn btn-sm linkedin-btn" href="https://www.linkedin.com/shareArticle?url={{ .Permalink }}&title={{ .Title }}" target="_blank">
<a class="btn icon-button bg-linkedin" href="https://www.linkedin.com/shareArticle?url={{ .Permalink }}&title={{ .Title }}" target="_blank">
<i class="fab fa-linkedin"></i>
</a>
{{ end }}
{{ if site.Params.features.blog.shareButtons.diaspora }}
<a class="btn btn-sm diaspora-btn" href="https://share.diasporafoundation.org/?title={{ .Title }}&url={{ .Permalink }}" rel="nofollow" target="_blank">
<a class="btn icon-button bg-diaspora" href="https://share.diasporafoundation.org/?title={{ .Title }}&url={{ .Permalink }}" rel="nofollow" target="_blank">
<i class="fab fa-diaspora"></i>
</a>
{{ end }}
{{ if site.Params.features.blog.shareButtons.mastodon }}
<a class="btn btn-sm mastodon-btn" href="https://mastodon.social/share?text={{ .Title }} - {{ .Permalink }}" target="_blank">
<a class="btn icon-button bg-mastodon" href="https://mastodon.social/share?text={{ .Title }} - {{ .Permalink }}" target="_blank">
<i class="fab fa-mastodon"></i>
</a>
{{ end }}
{{ if site.Params.features.blog.shareButtons.whatsapp }}
<a class="btn btn-sm whatsapp-btn" href="https://api.whatsapp.com/send?text={{ .Title }} {{ .Permalink }}" target="_blank">
<a class="btn icon-button bg-whatsapp" href="https://api.whatsapp.com/send?text={{ .Title }} {{ .Permalink }}" target="_blank">
<i class="fab fa-whatsapp"></i>
</a>
{{ end }}
{{ if site.Params.features.blog.shareButtons.email }}
<a class="btn btn-sm email-btn" href="mailto:?subject={{ .Title }}&body={{ .Permalink }}" target="_blank">
<a class="btn icon-button" href="mailto:?subject={{ .Title }}&body={{ .Permalink }}" target="_blank">
<i class="fas fa-envelope-open-text"></i>
</a>
{{ end }}
@ -162,9 +155,6 @@
</div>
<!--scroll back to top-->
<a id="scroll-to-top" class="btn"><i class="fas fa-chevron-circle-up"></i></a>
{{ if .IsTranslated }}
{{ partial "navigators/floating-lang-selector.html" . }}
{{ end }}
</section>
{{ end }}

View file

@ -1,5 +1,5 @@
{{ define "navbar" }}
{{ partial "navigators/navbar-2.html" . }}
{{ partial "navigators/navbar.html" . }}
{{ end }}
{{ define "sidebar" }}

View file

@ -17,6 +17,17 @@
<!--================= add analytics if enabled =========================-->
{{- partial "analytics.html" . -}}
<script>
theme = localStorage.getItem('darkmode:color-scheme') || 'system';
if (theme == 'system') {
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
theme = 'dark';
} else {
theme = 'light';
}
}
document.documentElement.setAttribute('data-theme', theme);
</script>
</head>
<body data-spy="scroll" data-target="#top-navbar" data-offset="100">
@ -33,7 +44,7 @@
{{ end }}
{{ if $sections }}
{{ $background:= "bg-white"}}
{{ $background:= "bg-primary"}}
{{ range sort $sections "section.weight" }}
{{ if .section.enable }}
<div class="container-fluid section-holder d-flex {{ $background }}">
@ -44,10 +55,10 @@
{{ end }}
</div>
<!--- alter background color for next section --->
{{ if eq $background "bg-white" }}
{{ $background = "bg-dimmed" }}
{{ if eq $background "bg-primary" }}
{{ $background = "bg-secondary" }}
{{ else }}
{{ $background = "bg-white" }}
{{ $background = "bg-primary" }}
{{end}}
{{ end }}
{{ end }}

View file

@ -1,5 +1,5 @@
{{ define "navbar" }}
{{ partial "navigators/navbar-2.html" . }}
{{ partial "navigators/navbar.html" . }}
{{ end }}
{{ define "sidebar" }}

View file

@ -1,5 +1,5 @@
{{ define "navbar" }}
{{ partial "navigators/navbar-2.html" . }}
{{ partial "navigators/navbar.html" . }}
{{ end }}
{{ define "sidebar" }}

View file

@ -7,18 +7,11 @@
<div class="card-body">
<h5 class="card-title">{{ .Title }}</h5>
<p class="card-text post-summary">{{ .Summary }}</p>
{{ if and site.Params.features.tags.enable site.Params.features.tags.on_card }}
{{ partial "misc/tags.html" .Params.tags }}
{{ end }}
</div>
<div class="card-footer">
{{ if and site.Params.features.tags.enable site.Params.features.tags.on_card }}
<div class="taxonomy-terms-card">
<ul style="padding-left: 0;">
{{ range .Params.tags }}
{{ $url:= printf "tags/%s/" . }}
<li class="rounded"><a href="{{ $url | urlize | relLangURL }}" class="btn, btn-sm">{{ . }}</a></li>
{{ end }}
</ul>
</div>
{{ end }}
<span class="float-left">{{ .Date.Format "January 2, 2006" }}{{ if site.Params.features.readingTime }} | {{ .ReadingTime }} minute{{ if (ne .ReadingTime 1) }}s{{ end }}{{ end }}</span>
<a
href="{{ .RelPermalink | relLangURL }}"

View file

@ -1,29 +0,0 @@
<div class="col-lg-4 col-md-6 pt-2 post-card">
<a href="{{ .RelPermalink }}" title="{{ .Title }}" class="post-card-link">
<div class="card">
<div class="card-head">
<img class="card-img-top" src='{{ partial "helpers/get-hero.html" . }}'
alt="Card image cap"
/>
</div>
<div class="card-body">
<h5 class="card-title">{{ .Title }}</h5>
<p class="card-text post-summary"> {{ .Summary }}</p>
</div>
<div class="card-footer">
{{ if and site.Params.features.tags.enable site.Params.features.tags.on_card }}
<div class="taxonomy-terms">
<ul style="padding-left: 0;">
{{ range .Params.tags }}
{{ $url:= printf "tags/%s/" . }}
<li class="rounded"><a href="{{ $url | urlize | relLangURL }}" class="btn, btn-sm">{{ . }}</a></li>
{{ end }}
</ul>
</div>
{{ end }}
<span class="float-left">{{ .Date.Format "January 2, 2006" }}{{ if site.Params.features.readingTime }} | {{ .ReadingTime }} minute{{ if (ne .ReadingTime 1) }}s{{ end }}{{ end }}</span>
<a href="{{ .RelPermalink }}" title="{{ i18n "read" }}" class="float-right btn btn-outline-info btn-sm">{{ i18n "read" }}</a>
</div>
</div>
</a>
</div>

View file

@ -1,5 +1,5 @@
<div class="col-xs-12 col-sm-6 col-lg-4 pt-2">
<a class="skill-card-link" {{ if .url }}href="{{ .url }}" title="{{ .name }}" target="_blank" rel="noopener"{{ end }}>
<a class="text-decoration-none" {{ if .url }}href="{{ .url }}" title="{{ .name }}" target="_blank" rel="noopener"{{ end }}>
<div class="card">
<div class="card-head d-flex">
{{ if .logo }}

View file

@ -72,29 +72,12 @@ params:
# The `darkMode` feature
darkmode:
enable: true
services:
# darkmode is realized by using DarkReader library
darkreader:
# options are 'system', 'dark', 'light'
defaultColorScheme: system
# For all available options, see `interface DynamicThemeFix`:
# https://github.com/darkreader/darkreader/blob/main/index.d.ts#L125
fixes:
invert: ['img[src$=".svg"]'] # inverts svg colors.
# For all available options, see `interface Theme` in:
# https://github.com/darkreader/darkreader/blob/main/index.d.ts#L45
theme:
brightness: 100
contrast: 100
sepia: 0
```
This helper will convert the above config into the following env vars:
* `FEATURE_ANALYTICS=1`
* `FEATURE_ANALYTICS_GOOGLE=1`
* `FEATURE_DARKMODE=1`
* `FEATURE_DARKMODE_DARKREADER=1`
In JS, you can use it like this:

View file

@ -0,0 +1,5 @@
{{- if page.IsHome -}}
#{{ partial "helpers/get-section-id.html" . }}
{{- else -}}
{{ site.BaseURL | relLangURL }}#{{ partial "helpers/get-section-id.html" . }}
{{- end -}}

View file

@ -1,7 +1,7 @@
<div class="col-6 col-lg-4 p-2">
{{ if eq .type "certification" }}
{{/* Verifiable certificate badge from https://www.credly.com */}}
<div class="">
<div class="certificate-badge">
<a href="{{ .url }}" target="_blank" rel="noopener noreferrer">
<img src="{{ .badge }}" alt="{{ .name }}" />
</a>

View file

@ -0,0 +1,8 @@
<div class="tags">
<ul style="padding-left: 0;">
{{ range . }}
{{ $url:= printf "tags/%s/" . }}
<li class="rounded"><a href="{{ $url | urlize | relLangURL }}" class="btn, btn-sm">{{ . }}</a></li>
{{ end }}
</ul>
</div>

View file

@ -1,25 +0,0 @@
{{ $pageURL:= .RelPermalink }}
{{ if site.IsMultiLingual }}
{{ $pageURL = strings.TrimPrefix (path.Join "/" .Language.Lang) $pageURL }}
{{ end }}
<div class="dropdown languageSelector">
<a class="btn dropdown-toggle" href="#" id="languageSelector" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{ if ne site.Params.features.flags.enable false }}
{{ $countryCode := partial "helpers/country-code.html" . }}
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ end }}
{{ site.Language.LanguageName }}
</a>
<div class="dropdown-menu" aria-labelledby="languageSelector">
{{ range .Translations }}
<a class="dropdown-item nav-link languages-item" href="{{ path.Join "/" (cond (eq .Language.Lang "en") "" .Language.Lang) $pageURL }}">
{{ if ne site.Params.features.flags.enable false }}
{{ $countryCode := partial "helpers/country-code.html" . }}
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ end }}
{{ .Language.LanguageName }}
</a>
{{ end }}
</div>
</div>

View file

@ -1,25 +0,0 @@
{{ $pageURL:= .RelPermalink }}
{{ if site.IsMultiLingual }}
{{ $pageURL = strings.TrimPrefix (path.Join "/" .Language.Lang) $pageURL }}
{{ end }}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="languageSelector" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{ if ne site.Params.features.flags.enable false }}
{{ $countryCode := partial "helpers/country-code.html" . }}
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ end }}
{{ site.Language.LanguageName }}
</a>
<div class="dropdown-menu" aria-labelledby="languageSelector">
{{ range .Translations }}
<a class="dropdown-item nav-link languages-item" href="{{ path.Join "/" (cond (eq .Language.Lang "en") "" .Language.Lang) $pageURL }}">
{{ if ne site.Params.features.flags.enable false }}
{{ $countryCode := partial "helpers/country-code.html" . }}
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ end }}
{{ .Language.LanguageName }}
</a>
{{ end }}
</div>
</li>

View file

@ -1,3 +1,7 @@
{{ $pageURL:= .RelPermalink }}
{{ if site.IsMultiLingual }}
{{ $pageURL = strings.TrimPrefix (path.Join "/" .Language.Lang) $pageURL }}
{{ end }}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="languageSelector" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{ if ne site.Params.features.flags.enable false }}
@ -8,7 +12,7 @@
</a>
<div class="dropdown-menu" aria-labelledby="languageSelector">
{{ range site.Home.AllTranslations }}
<a class="dropdown-item nav-link languages-item" href="{{ .RelPermalink }}">
<a class="dropdown-item nav-link languages-item" href="{{ path.Join "/" (cond (eq .Language.Lang "en") "" .Language.Lang) $pageURL }}">
{{ if ne site.Params.features.flags.enable false }}
{{ $countryCode := partial "helpers/country-code.html" . }}
<span class="flag-icon flag-icon-{{$countryCode}}"></span>

View file

@ -1,63 +0,0 @@
{{/* by default, don't use any logo */}}
{{ $mainLogo := "" }}
{{ $invertedLogo := "" }}
{{/* if custom logo has been provided, use them */}}
{{ if site.Params.logo.main }}
{{ $mainLogo = site.Params.logo.main }}
{{ end }}
{{ if site.Params.logo.inverted }}
{{ $invertedLogo = site.Params.logo.inverted }}
{{ end }}
{{/* resize the logos. don't resize svg because it is not supported */}}
{{ if $mainLogo }}
{{ $mainLogo = resources.Get $mainLogo}}
{{ if and $mainLogo (ne $mainLogo.MediaType.SubType "svg") }}
{{ $mainLogo = $mainLogo.Resize "42x" }}
{{ end }}
{{ $mainLogo = $mainLogo.RelPermalink}}
{{ end }}
{{ if $invertedLogo }}
{{ $invertedLogo = resources.Get $invertedLogo}}
{{ if and $invertedLogo (ne $invertedLogo.MediaType.SubType "svg")}}
{{ $invertedLogo = $invertedLogo.Resize "42x" }}
{{ end }}
{{ $invertedLogo = $invertedLogo.RelPermalink}}
{{ end }}
<nav class="navbar navbar-expand-xl top-navbar final-navbar shadow">
<div class="container">
<button class="navbar-toggler navbar-light" id="sidebar-toggler" type="button">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="{{ site.BaseURL | relLangURL }}">
{{ if $mainLogo }}
<img src="{{ $mainLogo }}" alt="Logo">
{{ end }}
{{- site.Title -}}
</a>
<button class="navbar-toggler navbar-light" id="toc-toggler" type="button">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse lang-selector" id="top-nav-items">
<ul class="navbar-nav ml-auto">
{{ if .IsTranslated }}
{{ partial "navigators/lang-selector-2.html" . }}
{{ end }}
{{ if site.Params.features.darkMode.enable }}
{{ partial "navigators/theme-selector.html" . }}
{{ end }}
</ul>
</div>
</div>
<!-- Store the logo information in a hidden img for the JS -->
{{ if $mainLogo }}
<img src="{{ $mainLogo }}" class="d-none" id="main-logo" alt="Logo">
{{ end }}
{{ if $invertedLogo }}
<img src="{{ $invertedLogo }}" class="d-none" id="inverted-logo" alt="Inverted Logo">
{{ end }}
</nav>

View file

@ -37,6 +37,11 @@
{{ $invertedLogo = $invertedLogo.RelPermalink}}
{{ end }}
{{ $logo := $mainLogo }}
{{ if .IsHome }}
{{ $logo = $invertedLogo }}
{{ end }}
{{ $customMenus := site.Params.customMenus }}
{{ if (index site.Data site.Language.Lang).site.customMenus }}
{{ $customMenus = (index site.Data site.Language.Lang).site.customMenus }}
@ -47,29 +52,34 @@
{{ $sections = (index site.Data site.Language.Lang).sections }}
{{ end }}
<nav class="navbar navbar-expand-xl top-navbar initial-navbar" id="top-navbar">
<nav class="navbar navbar-expand-xl top-navbar shadow {{ if .IsHome}}transparent-navbar homepage{{end}}" id="top-navbar">
<div class="container">
{{ if not .IsHome }}
<button class="navbar-toggler navbar-light" id="sidebar-toggler" type="button">
<i data-feather="sidebar"></i>
</button>
{{ end }}
<a class="navbar-brand" href="{{ site.BaseURL | relLangURL }}">
{{ if $invertedLogo }}
<img src="{{ $invertedLogo }}" id="logo" alt="Logo">
{{ if $logo }}
<img src="{{ $logo }}" id="logo" alt="Logo">
{{ end }}
{{- site.Title -}}
</a>
<button
class="navbar-toggler navbar-dark"
class="navbar-toggler {{if .IsHome}}navbar-dark{{else}}navbar-light{{end}}"
id="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#top-nav-items"
aria-label="menu"
>
<span class="navbar-toggler-icon"></span>
<i data-feather="menu"></i>
</button>
<div class="collapse navbar-collapse dynamic-navbar" id="top-nav-items">
<ul class="navbar-nav ml-auto">
<ul class="nav navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="#home">{{ i18n "home" }}</a>
<a class="nav-link" href="{{ if .IsHome }}#home{{else}}{{ site.BaseURL | relLangURL }}#home{{end}}">{{ i18n "home" }}</a>
</li>
{{ if $sections }}
{{ $sectionCount := 1 }}
@ -78,7 +88,7 @@
{{ $sectionCount = add $sectionCount 1}}
{{ if le $sectionCount $maxVisibleSections }}
<li class="nav-item">
<a class="nav-link" href="#{{ partial "helpers/get-section-id.html" . }}">{{ .section.name }}</a>
<a class="nav-link" href="{{ partial "helpers/get-section-url.html" . }}">{{ .section.name }}</a>
</li>
{{ end }}
{{ end }}
@ -92,7 +102,7 @@
{{ if and (.section.enable) (.section.showOnNavbar) }}
{{ $sectionCount = add $sectionCount 1}}
{{ if gt $sectionCount $maxVisibleSections }}
<a class="dropdown-item" href="#{{ partial "helpers/get-section-id.html" . }}">{{ .section.name }}</a>
<a class="dropdown-item" href="{{ partial "helpers/get-section-url.html" . }}">{{ .section.name }}</a>
{{ end }}
{{ end }}
{{- end }}
@ -102,16 +112,16 @@
{{- end }}
{{ $shouldAddSeparator:= partial "helpers/add-navbar-separator.html" . }}
{{ if $shouldAddSeparator }}
<div class="dropdown-divider" id="top-navbar-divider"></div>
<div id="top-navbar-divider"></div>
{{ end }}
{{ if $blogEnabled }}
<li class="nav-item">
<a class="nav-link" id="blog-link" href="{{ "/posts/" | relLangURL }}">{{ i18n "posts" }}</a>
<a class="nav-link" id="blog-link" href="{{ path.Join (site.BaseURL | relLangURL) "posts" }}">{{ i18n "posts" }}</a>
</li>
{{ end }}
{{ if $notesEnabled }}
<li class="nav-item">
<a class="nav-link" id="note-link" href="{{ "/notes/" | relLangURL }}">{{ i18n "notes" }}</a>
<a class="nav-link" id="note-link" href="{{ path.Join (site.BaseURL | relLangURL) "notes" }}">{{ i18n "notes" }}</a>
</li>
{{ end }}
{{ range $customMenus }}

View file

@ -22,7 +22,7 @@
<div class="row next-prev-navigator">
{{ if $prevPage }}
<div class="col-md-6 previous-article">
<a href="{{ $prevPage.RelPermalink }}" title="{{ $prevPage.Title }}" class="btn btn-outline-info">
<a href="{{ $prevPage.RelPermalink }}" title="{{ $prevPage.Title }}" class="btn filled-button">
<div><i class="fas fa-chevron-circle-left"></i> {{ i18n "prev" }}</div>
<div class="next-prev-text">{{ $prevPage.Title }}</div>
</a>
@ -34,7 +34,7 @@
{{ $columnWidth = "col-md-6" }}
{{ end}}
<div class="{{ $columnWidth }} next-article">
<a href="{{ $nextPage.RelPermalink }}" title="{{ $nextPage.Title }}" class="btn btn-outline-info">
<a href="{{ $nextPage.RelPermalink }}" title="{{ $nextPage.Title }}" class="btn filled-button">
<div>{{ i18n "next" }} <i class="fas fa-chevron-circle-right"></i></div>
<div class="next-prev-text">{{ $nextPage.Title }}</div>
</a>

View file

@ -1,15 +1,15 @@
{{ range .menuItems }}
{{ $class:= "" }}
{{ $icon:= "fa-plus-circle" }}
{{ $icon:= "plus-circle" }}
<!-- If the current menu is the selected menu or it contain the selected menu, set expand icon and set "active" class -->
{{ if or ($.ctx.HasMenuCurrent $.menuName .) ($.ctx.IsMenuCurrent $.menuName .)}}
{{ $icon = "fa-minus-circle"}}
{{ $icon = "minus-circle"}}
{{ $class = "active" }}
{{end}}
{{ if .HasChildren }}
<!-- Add current entry -->
<li>
<i class="fas {{ $icon }}"></i><a class="{{$class}}" href="{{ .URL }}"> {{.Name}}</a>
<i data-feather="{{ $icon }}"></i><a class="{{$class}} list-link" href="{{ .URL }}"> {{.Name}}</a>
<!-- Add sub-tree -->
<ul class="{{ $class }}">
{{ partial "navigators/sidebar.html" (dict "menuName" $.menuName "menuItems" .Children "ctx" $.ctx) }}
@ -17,6 +17,6 @@
</li>
{{ else }}
<!-- No sub-tree. So, only add current entry -->
<li><a class="{{$class}}" href="{{ .PageRef | default .URL }}" title="{{ .Name }}">{{.Name}}</a></li>
<li><a class="{{$class}} list-link" href="{{ .PageRef | default .URL }}" title="{{ .Name }}">{{.Name}}</a></li>
{{ end }}
{{ end }}

View file

@ -1,17 +1,17 @@
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="themeSelector" role="button"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img id="navbar-theme-icon-svg" src="{{ "/icons/moon-svgrepo-com.svg" }}" width=20 alt="Dark Theme">
<img id="navbar-theme-icon-svg" class="theme-icon" src="{{ "icons/moon-svgrepo-com.svg" | relURL }}" width=20 alt="Dark Theme">
</a>
<div id="themeMenu" class="dropdown-menu dropdown-menu-icons-only" aria-labelledby="themeSelector">
<a class="dropdown-item nav-link" href="#" data-scheme="light">
<img class="menu-icon-center" src="{{ "/icons/sun-svgrepo-com.svg" }}" width=20 alt="Light Theme">
<img class="theme-icon" src="{{ "icons/sun-svgrepo-com.svg" | relURL }}" width=20 alt="Light Theme">
</a>
<a class="dropdown-item nav-link" href="#" data-scheme="dark">
<img class="menu-icon-center" src="{{ "/icons/moon-svgrepo-com.svg" }}" width=20 alt="Dark Theme">
<img class="theme-icon" src="{{ "icons/moon-svgrepo-com.svg" | relURL }}" width=20 alt="Dark Theme">
</a>
<a class="dropdown-item nav-link" href="#" data-scheme="system">
<img class="menu-icon-center" src="{{ "/icons/computer-svgrepo-com.svg" }}" width=20 alt="System Theme">
<img class="theme-icon" src="{{ "icons/computer-svgrepo-com.svg" | relURL }}" width=20 alt="System Theme">
</a>
</div>
</li>

View file

@ -1 +1 @@
{{ partial "helpers/script-bundle.html" }}
{{ partial "helpers/script-bundle.html" }}

View file

@ -43,11 +43,11 @@
</div>
<h6>{{ .name }}</h6>
{{ if .grade }}
<h6><span>{{ .grade.scale }}: </span><span>{{ .grade.achieved }}</span> {{ i18n "out_of" }} <span>{{ .grade.outOf }}</span></h6>
<h6 class="text-heading"><span>{{ .grade.scale }}: </span><span>{{ .grade.achieved }}</span> {{ i18n "out_of" }} <span>{{ .grade.outOf }}</span></h6>
{{ end }}
{{ if .publications }}
<div class="publications">
<h6 class="text-muted">{{i18n "publications"}}</h6>
<h6 class="text-heeading">{{i18n "publications"}}:</h6>
<ul>
{{ range .publications }}
{{ if .url }}
@ -62,7 +62,7 @@
{{ if .takenCourses }}
{{ $collapseAfter := .takenCourses.collapseAfter | default 2 }}
<div class="taken-courses">
<h6 class="text-muted">{{ i18n "taken_courses" }}</h6>
<h6 class="text-heading">{{ i18n "taken_courses" }}:</h6>
{{ if .takenCourses.showGrades }}
{{ $hideScale := .takenCourses.hideScale }}
<table>
@ -98,7 +98,7 @@
{{ end }}
{{ if .extracurricularActivities }}
<div class="extracurricular-activities">
<h6 class="text-muted">{{ i18n "extracurricular_activities" }}</h6>
<h6 class="text-heading">{{ i18n "extracurricular_activities" }}:</h6>
<ul>
{{ range .extracurricularActivities }}
<li>{{ . | markdownify }}</li>

View file

@ -43,11 +43,11 @@
</div>
<h6>{{ .name }}</h6>
{{ if .grade }}
<h6><span class="text-muted">{{ .grade.scale }}: </span><span>{{ .grade.achieved }}</span> {{ i18n "out_of"}} <span>{{ .grade.outOf }}</span></h6>
<h6><span class="text-heading">{{ .grade.scale }}: </span><span>{{ .grade.achieved }}</span> {{ i18n "out_of"}} <span>{{ .grade.outOf }}</span></h6>
{{ end }}
{{ if .publications }}
<div class="publications">
<h6 class="text-muted">{{ i18n "publications"}}</h6>
<h6 class="text-heading">{{ i18n "publications"}}:</h6>
<ul>
{{ range .publications }}
{{ if .url }}
@ -62,7 +62,7 @@
{{ if .takenCourses }}
{{ $collapseAfter := .takenCourses.collapseAfter | default 2 }}
<div class="taken-courses">
<h6 class="text-muted">{{ i18n "taken_courses"}}</h6>
<h6 class="text-heading">{{ i18n "taken_courses"}}:</h6>
{{ if .takenCourses.showGrades }}
{{ $hideScale := .takenCourses.hideScale }}
<table>
@ -98,7 +98,7 @@
{{ end }}
{{ if .extracurricularActivities }}
<div class="extracurricular-activities">
<h6 class="text-muted">{{ i18n "extracurricular_activities"}}</h6>
<h6 class="text-heading">{{ i18n "extracurricular_activities"}}:</h6>
<ul>
{{ range .extracurricularActivities }}
<li>{{ . | markdownify }}</li>

View file

@ -13,7 +13,7 @@
<p>{{ .company.overview | markdownify }}</p>
<!-- Add the responsibilities handled at this position -->
{{ if $position.responsibilities }}
<h6 class="text-muted">{{ i18n "responsibilities" }}</h6>
<h6 class="text-heading">{{ i18n "responsibilities" }}</h6>
<ul class="justify-content-around">
{{ range $position.responsibilities }}
<li>{{ . | markdownify }}</li>

View file

@ -20,7 +20,7 @@
<div class="container">
<div class="row" id="recent-post-cards">
{{ range first $numShow (where (where site.RegularPages.ByDate.Reverse "Type" "posts" ) "Layout" "!=" "search") }}
{{ partial "cards/recent-post.html" . }}
{{ partial "cards/post.html" . }}
{{ end }}
</div>
</div>

View file

@ -1,5 +1,5 @@
{{ define "navbar" }}
{{ partial "navigators/navbar-2.html" . }}
{{ partial "navigators/navbar.html" . }}
{{ end }}
{{ define "sidebar" }}

63
package-lock.json generated
View file

@ -13,7 +13,6 @@
"@fortawesome/fontawesome-free": "^6.2.0",
"autoprefixer": "^10.4.13",
"bootstrap": "^4.6.2",
"darkreader": "^4.9.58",
"eslint": "^8.31.0",
"eslint-config-prettier": "^8.6.0",
"eslint-config-standard": "^17.0.0",
@ -21,11 +20,13 @@
"eslint-plugin-n": "^15.6.0",
"eslint-plugin-no-jquery": "^2.7.0",
"eslint-plugin-promise": "^6.1.1",
"feather-icons": "^4.29.1",
"filterizr": "^2.2.4",
"flag-icon-css": "^4.1.7",
"fuse.js": "^6.6.2",
"highlight.js": "^11.6.0",
"imagesloaded": "^5.0.0",
"include-media": "^1.4.10",
"ityped": "^1.0.3",
"katex": "^0.16.3",
"mark.js": "^8.11.1",
@ -504,6 +505,12 @@
"fsevents": "~2.3.2"
}
},
"node_modules/classnames": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
"integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==",
"dev": true
},
"node_modules/cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@ -1005,16 +1012,6 @@
"lodash-es": "^4.17.21"
}
},
"node_modules/darkreader": {
"version": "4.9.58",
"resolved": "https://registry.npmjs.org/darkreader/-/darkreader-4.9.58.tgz",
"integrity": "sha512-D/JGoJqW3m2AWBLhO+Pev+eThfs+CwRT4bcLb/1zKjql2yVwG0lx8C2XRDdSVGHw4y11n26W7syWoBpUfuhMqQ==",
"dev": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/darkreader/donate"
}
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@ -1677,6 +1674,16 @@
"reusify": "^1.0.4"
}
},
"node_modules/feather-icons": {
"version": "4.29.1",
"resolved": "https://registry.npmjs.org/feather-icons/-/feather-icons-4.29.1.tgz",
"integrity": "sha512-P1we61haGTds6lKWe6CCVPsNULb8tHr1y6S9gXEpU+lNR1Ja7GdV0A1l2hTNmzXv+0Stix/3YMWMAn7n1Qtd6A==",
"dev": true,
"dependencies": {
"classnames": "^2.2.5",
"core-js": "^3.1.3"
}
},
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@ -2202,6 +2209,12 @@
"node": ">=0.8.19"
}
},
"node_modules/include-media": {
"version": "1.4.10",
"resolved": "https://registry.npmjs.org/include-media/-/include-media-1.4.10.tgz",
"integrity": "sha512-TymQzKF7oWHbItEcEHOCponZ90lRr1I9QbYeD+qCxXy4Z0/pSpS4Ocz2bq3FMOERlXXrY9Sawsh9GjiObVQA6A==",
"dev": true
},
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@ -4134,6 +4147,12 @@
"readdirp": "~3.6.0"
}
},
"classnames": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
"integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==",
"dev": true
},
"cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@ -4513,12 +4532,6 @@
"lodash-es": "^4.17.21"
}
},
"darkreader": {
"version": "4.9.58",
"resolved": "https://registry.npmjs.org/darkreader/-/darkreader-4.9.58.tgz",
"integrity": "sha512-D/JGoJqW3m2AWBLhO+Pev+eThfs+CwRT4bcLb/1zKjql2yVwG0lx8C2XRDdSVGHw4y11n26W7syWoBpUfuhMqQ==",
"dev": true
},
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@ -5020,6 +5033,16 @@
"reusify": "^1.0.4"
}
},
"feather-icons": {
"version": "4.29.1",
"resolved": "https://registry.npmjs.org/feather-icons/-/feather-icons-4.29.1.tgz",
"integrity": "sha512-P1we61haGTds6lKWe6CCVPsNULb8tHr1y6S9gXEpU+lNR1Ja7GdV0A1l2hTNmzXv+0Stix/3YMWMAn7n1Qtd6A==",
"dev": true,
"requires": {
"classnames": "^2.2.5",
"core-js": "^3.1.3"
}
},
"file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@ -5399,6 +5422,12 @@
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true
},
"include-media": {
"version": "1.4.10",
"resolved": "https://registry.npmjs.org/include-media/-/include-media-1.4.10.tgz",
"integrity": "sha512-TymQzKF7oWHbItEcEHOCponZ90lRr1I9QbYeD+qCxXy4Z0/pSpS4Ocz2bq3FMOERlXXrY9Sawsh9GjiObVQA6A==",
"dev": true
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",

View file

@ -32,7 +32,6 @@
"@fontsource/mulish": "4.5.13",
"@fortawesome/fontawesome-free": "^6.2.0",
"bootstrap": "^4.6.2",
"darkreader": "^4.9.58",
"filterizr": "^2.2.4",
"flag-icon-css": "^4.1.7",
"fuse.js": "^6.6.2",
@ -43,6 +42,8 @@
"mark.js": "^8.11.1",
"mermaid": "^9.2.1",
"plyr": "^3.7.2",
"popper.js": "^1.16.1"
"popper.js": "^1.16.1",
"include-media": "^1.4.10",
"feather-icons": "^4.29.1"
}
}

View file

@ -10,7 +10,6 @@
"@fortawesome/fontawesome-free": "project",
"autoprefixer": "project",
"bootstrap": "project",
"darkreader": "project",
"eslint": "project",
"eslint-config-prettier": "project",
"eslint-config-standard": "project",
@ -18,11 +17,13 @@
"eslint-plugin-n": "project",
"eslint-plugin-no-jquery": "project",
"eslint-plugin-promise": "project",
"feather-icons": "project",
"filterizr": "project",
"flag-icon-css": "project",
"fuse.js": "project",
"highlight.js": "project",
"imagesloaded": "project",
"include-media": "project",
"ityped": "project",
"katex": "project",
"mark.js": "project",
@ -40,7 +41,6 @@
"@fortawesome/fontawesome-free": "^6.2.0",
"autoprefixer": "^10.4.13",
"bootstrap": "^4.6.2",
"darkreader": "^4.9.58",
"eslint": "^8.31.0",
"eslint-config-prettier": "^8.6.0",
"eslint-config-standard": "^17.0.0",
@ -48,11 +48,13 @@
"eslint-plugin-n": "^15.6.0",
"eslint-plugin-no-jquery": "^2.7.0",
"eslint-plugin-promise": "^6.1.1",
"feather-icons": "^4.29.1",
"filterizr": "^2.2.4",
"flag-icon-css": "^4.1.7",
"fuse.js": "^6.6.2",
"highlight.js": "^11.6.0",
"imagesloaded": "^5.0.0",
"include-media": "^1.4.10",
"ityped": "^1.0.3",
"katex": "^0.16.3",
"mark.js": "^8.11.1",