feat(directory): update home.jsx mobile layout

This commit is contained in:
Haoyu Xu
2023-10-22 22:22:44 -04:00
parent 4f23b15fa1
commit 39b32dd3d9
13 changed files with 424 additions and 331 deletions

View File

@@ -26,7 +26,7 @@
transition: opacity cubic-bezier(0.65, 0.05, 0.36, 1) 0.3s;; transition: opacity cubic-bezier(0.65, 0.05, 0.36, 1) 0.3s;;
} }
.loader .icon { .loader .icon, .loader .flasher {
display: block; display: block;
margin: 0 auto; margin: 0 auto;
width: 2rem; width: 2rem;
@@ -36,11 +36,16 @@
border-right: 0.3rem solid; border-right: 0.3rem solid;
border-top: 0.3rem solid; border-top: 0.3rem solid;
transform: translateY(-0.3rem) rotate(-45deg); transform: translateY(-0.3rem) rotate(-45deg);
animation: icon-flash 2s cubic-bezier(0.65, 0.05, 0.36, 1) infinite;
box-shadow: inset 0 0 16px 2px rgb(200 14 0), 0 0 18px 5px rgb(200 14 0); box-shadow: inset 0 0 16px 2px rgb(200 14 0), 0 0 18px 5px rgb(200 14 0);
border-color: rgba(54, 0, 0, 87%); border-color: rgba(54, 0, 0, 87%);
} }
.loader .flasher {
position: absolute;
box-shadow: unset;
animation: icon-flash 1.2s cubic-bezier(0.2, 0.6, 0.2, 1) infinite;
}
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.loader { .loader {
background-color: #131313; background-color: #131313;
@@ -54,8 +59,11 @@
} }
@keyframes icon-flash { @keyframes icon-flash {
50% { 100%{
opacity: 0.2; opacity: 0;
width: 4rem;
height: 4rem;
border-color: rgb(0, 0, 0);
} }
} }
</style> </style>
@@ -65,6 +73,7 @@
<div id="root"></div> <div id="root"></div>
<div class="loader"> <div class="loader">
<span class="icon"></span> <span class="icon"></span>
<span class="flasher"></span>
</div> </div>
<script type="module" src="/src/App.jsx"></script> <script type="module" src="/src/App.jsx"></script>
</body> </body>

View File

@@ -52,6 +52,17 @@
color: var(--text-color); color: var(--text-color);
background-color: var(--root-background-color); background-color: var(--root-background-color);
min-height: 100vh; min-height: 100vh;
@media only screen and (max-width: 430px) {
& {
font-size: 12px;
}
}
@media only screen and (max-width: 1600px) {
& {
font-size: 14px;
}
}
} }
#root { #root {
@@ -62,27 +73,6 @@
min-height: 100vh; min-height: 100vh;
} }
*::-webkit-scrollbar {
width: 12px;
}
*::-webkit-scrollbar-track {
background-color: transparent;
}
*::-webkit-scrollbar-thumb {
background-color: var(--border-color);
border-radius: 100px;
border: 5px solid transparent;
background-clip: padding-box;
transition: all 0.3s ease-in-out;
}
*::-webkit-scrollbar-thumb:hover {
border: 4px solid transparent;
background-color: var(--text-color);
}
a { a {
color: var(--text-color); color: var(--text-color);
text-decoration: none; text-decoration: none;

View File

@@ -18,5 +18,11 @@
} }
&:after { &:after {
left: 100%; left: 100%;
@media only screen and (max-width: 430px) {
& {
width: 0;
height: 0;
}
}
} }
} }

View File

@@ -90,7 +90,7 @@
.date { .date {
font-family: "Bender", 'Noto Sans SC', 'Noto Sans JP', 'Noto Sans KR', 'Noto Sans', sans-serif; font-family: "Bender", 'Noto Sans SC', 'Noto Sans JP', 'Noto Sans KR', 'Noto Sans', sans-serif;
font-weight: bold; font-weight: bold;
font-size: 24px; font-size: 1.5rem;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
flex-wrap: nowrap; flex-wrap: nowrap;

View File

@@ -227,6 +227,7 @@ export default function Home() {
return ( return (
<section key={v[0].date} hidden={length === 0}> <section key={v[0].date} hidden={length === 0}>
<section className={classes.group}> <section className={classes.group}>
<section className={classes['operator-group']}>
{v.map(item => { {v.map(item => {
return ( return (
<OperatorElement <OperatorElement
@@ -237,6 +238,7 @@ export default function Home() {
/> />
) )
})} })}
</section>
<section className={classes.date}>{v[0].date}</section> <section className={classes.date}>{v[0].date}</section>
</section> </section>
<Border /> <Border />

View File

@@ -10,4 +10,11 @@
max-width: 100rem; max-width: 100rem;
padding-top: 5rem; padding-top: 5rem;
min-height: calc(100vh - 5rem - 3rem); min-height: calc(100vh - 5rem - 3rem);
@media only screen and (max-width: 430px) {
& {
width: calc(100vw - 2rem);
margin-left: 2rem;
}
}
} }

View File

@@ -9,6 +9,12 @@
letter-spacing: 0.1rem; letter-spacing: 0.1rem;
flex: auto; flex: auto;
user-select: none; user-select: none;
@media only screen and (max-width: 430px) {
& {
margin: 0rem;
}
}
} }
.container { .container {
@@ -43,10 +49,25 @@
flex-wrap: wrap; flex-wrap: wrap;
user-select: none; user-select: none;
.operator-group {
display: flex;
flex-direction: row;
flex-wrap: wrap;
@media only screen and (max-width: 430px) {
& {
width: 100%;
padding-bottom: 1rem;
overflow-y: hidden;
flex-wrap: nowrap;
}
}
}
.item { .item {
position: relative; position: relative;
cursor: pointer; cursor: pointer;
width: 180px; width: 12rem;
margin: 1.25rem; margin: 1.25rem;
background-image: repeating-linear-gradient( background-image: repeating-linear-gradient(
90deg, 90deg,
@@ -98,9 +119,13 @@
} }
.img { .img {
height: 360px;
width: 100%;
transition: background-color cubic-bezier(0.65, 0.05, 0.36, 1) 0.3s; transition: background-color cubic-bezier(0.65, 0.05, 0.36, 1) 0.3s;
& img {
height: auto;
width: 100%;
display: block;
}
} }
.info { .info {
@@ -149,6 +174,27 @@
visibility: visible; visibility: visible;
} }
} }
@media only screen and (max-width: 430px) {
& {
width: 8.08rem;
margin: 1.08rem;
.outline,
.info .background {
opacity: 1;
visibility: visible;
}
}
}
}
@media only screen and (max-width: 430px) {
& {
align-items: flex-start;
flex-direction: column-reverse;
padding-right: 0;
padding-bottom: 0;
}
} }
} }

View File

@@ -55,12 +55,8 @@
display: inline-block; display: inline-block;
cursor: pointer; cursor: pointer;
text-decoration: none; text-decoration: none;
overflow: hidden;
text-overflow: ellipsis;
.text-wrapper { .text-wrapper {
overflow: hidden;
text-overflow: ellipsis;
color: var(--text-color); color: var(--text-color);
transition: color cubic-bezier(0.65, 0.05, 0.36, 1) 0.3s; transition: color cubic-bezier(0.65, 0.05, 0.36, 1) 0.3s;
} }
@@ -78,13 +74,23 @@
} }
} }
} }
@media only screen and (max-width: 430px) {
& {
padding-right: 0;
}
}
} }
.fast-navigate { .fast-navigate {
position: absolute; position: absolute;
right: -2em; right: -2em;
bottom: calc(-1em - 2px); bottom: calc(-1em - 2px);
font-size: 32px; font-size: 32px;
@media only screen and (max-width: 430px) {
& {
display: none;
}
}
} }
.return-button { .return-button {

View File

@@ -4,7 +4,7 @@
left: -15rem; left: -15rem;
width: 15rem; width: 15rem;
height: 100%; height: 100%;
z-index: 2; z-index: 3;
pointer-events: none; pointer-events: none;
transition: left cubic-bezier(0.65, 0.05, 0.36, 1) 0.3s; transition: left cubic-bezier(0.65, 0.05, 0.36, 1) 0.3s;
text-align: center; text-align: center;
@@ -44,7 +44,7 @@
.overlay { .overlay {
height: 100%; height: 100%;
flex-grow: 1; flex-grow: 1;
z-index: 2; z-index: 3;
} }
&.active { &.active {
pointer-events: all; pointer-events: all;

View File

@@ -12,8 +12,10 @@
.links { .links {
flex-direction: row; flex-direction: row;
height: 2rem; height: 2rem;
overflow-y: hidden;
.item { .item {
text-align: center;
padding: 0 1rem; padding: 0 1rem;
border-left: 2px solid var(--border-color); border-left: 2px solid var(--border-color);
height: inherit; height: inherit;

View File

@@ -14,10 +14,6 @@
justify-content: flex-start; justify-content: flex-start;
pointer-events: none; pointer-events: none;
.spacer {
flex-grow: 1;
}
.dropdown { .dropdown {
margin-left: auto; margin-left: auto;
} }
@@ -72,3 +68,7 @@
} }
} }
} }
.spacer {
flex-grow: 1;
}

View File

@@ -23,21 +23,21 @@
}, },
"devDependencies": { "devDependencies": {
"@perfsee/rollup": "^1.8.4", "@perfsee/rollup": "^1.8.4",
"@types/react": "^18.2.25", "@types/react": "^18.2.31",
"@types/react-dom": "^18.2.11", "@types/react-dom": "^18.2.14",
"@vitejs/plugin-react-swc": "^3.4.0", "@vitejs/plugin-react-swc": "^3.4.0",
"autoprefixer": "^10.4.16", "autoprefixer": "^10.4.16",
"eslint": "^8.51.0", "eslint": "^8.52.0",
"eslint-plugin-react": "^7.33.2", "eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"postcss": "^8.4.31", "postcss": "^8.4.31",
"prop-types": "^15.8.1", "prop-types": "^15.8.1",
"rollup": "^3.29.4", "rollup": "^3.29.4",
"sass": "^1.69.0", "sass": "^1.69.4",
"stylelint": "^15.10.3", "stylelint": "^15.11.0",
"stylelint-config-standard": "^30.0.1", "stylelint-config-standard": "^30.0.1",
"stylelint-config-standard-scss": "^7.0.1", "stylelint-config-standard-scss": "^7.0.1",
"vite": "^4.4.11" "vite": "^4.5.0"
}, },
"dependencies": { "dependencies": {
"@parcellab/react-use-umami": "^2.0.1", "@parcellab/react-use-umami": "^2.0.1",
@@ -48,10 +48,10 @@
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-refresh": "^0.14.0", "react-refresh": "^0.14.0",
"react-router-dom": "^6.16.0", "react-router-dom": "^6.17.0",
"react-simple-typewriter": "^5.0.1", "react-simple-typewriter": "^5.0.1",
"reset-css": "^5.0.2", "reset-css": "^5.0.2",
"sharp": "^0.31.3", "sharp": "^0.31.3",
"yaml": "^2.3.2" "yaml": "^2.3.3"
} }
} }

589
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff