1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-25 04:46:40 +07:00

css grid to pack my layout

This commit is contained in:
muerwre 2019-04-02 17:25:50 +07:00
parent 44e10599d7
commit debb0640da
20 changed files with 1212 additions and 23 deletions

View file

@ -0,0 +1,7 @@
import * as React from 'react';
const style = require('./style.scss');
export const HeroPlaceholder = () => (
<div className={style.container}>
</div>
);

View file

@ -0,0 +1,9 @@
.container {
height: 280px;
width: 100%;
background: transparentize(white, 0.9) url("http://37.192.131.144/hero/photos/photo-20140527-1639766.jpg") no-repeat 50% 30%;
background-size: cover;
opacity: 0.7;
//box-shadow: white 0 0 0 1px;
//border-radius: $panel_radius $panel_radius 0 0;
}

View file

@ -0,0 +1,72 @@
import * as React from 'react';
import classnames from 'classnames';
// import * as AutoResponsive from 'autoresponsive-react';
// const ReactGridLayout = require('react-grid-layout');
// import 'react-grid-layout/css/styles.css';
// import 'react-resizable/css/styles.css';
const style = require('./style.scss');
// const Packery = require('react-packery-component')(React);
// http://37.192.131.144/hero/photos/photo-20120825-1532512.jpg
export const TestGrid = () => (
<div className={style.grid_test}>
<div className={classnames([style.cell, style.vert_1, style.hor_2])} key="b" />
<div className={classnames([style.cell, style.vert_1, style.hor_2])} key="a" />
<div className={classnames([style.cell, style.vert_1, style.hor_1])} key="c" />
<div className={classnames([style.cell, style.vert_1, style.hor_1])} key="d" />
<div className={classnames([style.cell, style.vert_2, style.hor_3])} key="e" />
<div className={classnames([style.cell, style.vert_2, style.hor_2])} key="f" />
<div className={classnames([style.cell, style.vert_2, style.hor_1])} key="g" />
<div className={classnames([style.cell, style.vert_2, style.hor_1])} key="h" />
<div className={classnames([style.cell, style.vert_4, style.hor_1])} key="i" />
<div className={classnames([style.cell, style.vert_1, style.hor_1])} key="i" />
</div>
);
// export const TestGrid = () => (
// <ReactGridLayout
// className="layout"
// cols={4}
// rowHeight={256}
// width={1024 + 256}
// layout={layout}
// margin={[0, 0]}
// compactType="vertical"
// verticalCompact
// >
// <div className={style.cell} key="a" />
// <div className={style.cell} key="b" />
// <div className={style.cell} key="c" />
// <div className={style.cell} key="d" />
// <div className={style.cell} key="e" />
// <div className={style.cell} key="f" />
// <div className={style.cell} key="g" />
// </ReactGridLayout>
// );
// export const TestGrid = () => (
// <AutoResponsive
// itemMargin={0}
// containerWidth={1024 + 256}
// itemClassName={style.cell}
// gridWidth={256}
// transitionDuration={0}
// >
// <div style={{ width: 256 * 4, height: 256 * 2 }} className={style.cell} key="a" />
// <div style={{ width: 256, height: 256 * 2 }} className={style.cell} key="b" />
// <div style={{ width: 256, height: 256 }} className={style.cell} key="c" />
// <div style={{ width: 256, height: 256 }} className={style.cell} key="d" />
// <div style={{ width: 256, height: 256 }} className={style.cell} key="d" />
// <div style={{ width: 256 * 2, height: 256 * 2 }} className={style.cell} key="h" />
// <div style={{ width: 256 * 2, height: 256 }} className={style.cell} key="e" />
// <div style={{ width: 256 * 2, height: 256 }} className={style.cell} key="f" />
// <div style={{ width: 256 * 2, height: 256 }} className={style.cell} key="g" />
// <div style={{ width: 256 * 2, height: 256 }} className={style.cell} key="g1" />
// <div style={{ width: 256, height: 256 }} className={style.cell} key="d" />
// <div style={{ width: 256, height: 256 }} className={style.cell} key="d1" />
// <div style={{ width: 256, height: 256 }} className={style.cell} key="d2" />
// <div style={{ width: 256, height: 256 }} className={style.cell} key="d3" />
// <div style={{ width: 256, height: 256 }} className={style.cell} key="d4" />
// </AutoResponsive>
// );

View file

@ -0,0 +1,52 @@
.grid {
//display: grid;
padding: $gap / 2;
margin: 0 (-$gap / 2);
}
.grid_test {
width: 1024px;
display: grid;
grid-template-columns: repeat(5, 256px);
grid-template-rows: repeat(2, 256px);
grid-auto-rows: 256px;
grid-auto-flow: row dense;
}
.cell {
padding: $gap / 4;
box-sizing: border-box;
display: flex;
flex: 0 0;
&::after {
content: ' ';
background: transparentize(white, 0.9);
width: 100%;
height: 100%;
}
}
.vert_2 {
grid-row-end: span 2;
}
.vert_3 {
grid-row-end: span 3;
}
.vert_4 {
grid-row-end: span 3;
}
.hor_2 {
grid-column-end: span 2;
}
.hor_3 {
grid-column-end: span 3;
}
.hor_4 {
grid-column-end: span 4;
}

View file

@ -0,0 +1,23 @@
import * as React from 'react';
const style = require('./style.scss');
const logo_sm = require('$sprites/logo_sm.svg');
export const Header = () => (
<div className="default_container head_container">
<div className={style.container}>
<div className={style.logo}>
VAULT
</div>
<div className={style.spacer} />
<div className={style.plugs}>
<div>depth</div>
<div>boris</div>
<div>flow</div>
</div>
<div className={style.user_button}>
<div className={style.user_avatar} />
gvorcek
</div>
</div>
</div>
);

View file

@ -0,0 +1,57 @@
.container {
display: flex;
align-items: center;
justify-content: flex-end;
font-weight: 500;
padding: $gap $spc;
}
.logo {
font-size: 1.4em;
font-weight: 800;
display: flex;
}
.spacer {
flex: 1;
}
.plugs {
display: flex;
> div {
//margin: 8px;
display: flex;
align-items: center;
position: relative;
padding: $gap;
&::after {
content: ' ';
margin-left: $spc;
background: white;
width: 2px;
height: $gap;
display: block;
}
}
}
.profile {
padding: 5px 10px;
box-shadow: white 0 0 0 1px;
border-radius: 10px;
}
.user_button {
padding: 0 $gap;
display: flex;
align-items: center;
}
.user_avatar {
width: 16px;
height: 16px;
background: transparentize(white, 0.5);
margin-right: $gap;
}

View file

@ -6,30 +6,22 @@ import { SomeComponent } from '$components/SomeComponent';
import { ConnectedRouter } from "connected-react-router";
import { history } from "$redux/store";
import { NavLink, Switch, Route } from 'react-router-dom';
import { MainLayout } from "$containers/MainLayout";
import { FlowLayout } from "$containers/FlowLayout";
interface IAppProps {}
interface IAppState {}
class Component extends React.Component<IAppProps, IAppState> {
state = { };
render() {
return (
<ConnectedRouter history={history}>
<div>
<div>
<NavLink exact to="/" activeClassName="active">
Root
</NavLink>
<NavLink to="/somepath" activeClassName="active">
Something
</NavLink>
</div>
<Switch>
<Route
exact
path="/"
component={SomeComponent}
component={FlowLayout}
/>
<Route
path="/somepath"

View file

@ -0,0 +1,13 @@
import * as React from 'react';
import { MainLayout } from "$containers/MainLayout";
import { HeroPlaceholder } from "$components/flow/HeroPlaceholder";
import { TestGrid } from "$components/flow/TestGrid";
// const style = require('./style.scss');
export const FlowLayout = () => (
<MainLayout>
<div className="default_container content_container">
<TestGrid />
</div>
</MainLayout>
);

View file

@ -0,0 +1,11 @@
import * as React from 'react';
import { Header } from "$components/main/Header";
const style = require('./style.scss');
export const MainLayout = ({ children }) => (
<div className={style.wrapper}>
<Header />
{children}
</div>
);

View file

@ -0,0 +1,4 @@
.wrapper {
width: 100%;
//padding: $gap 0;
}

View file

@ -4,7 +4,6 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>

128
src/sprites/circles.svg Normal file
View file

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1900"
height="1900"
viewBox="0 0 502.70831 502.70835"
version="1.1"
id="svg5743"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="circles.svg">
<defs
id="defs5737" />
<sodipodi:namedview
id="base"
pagecolor="#111111"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="0.35355339"
inkscape:cx="236.02719"
inkscape:cy="885.79322"
inkscape:document-units="px"
inkscape:current-layer="g6342"
showgrid="false"
units="px"
inkscape:showpageshadow="false"
inkscape:window-width="1920"
inkscape:window-height="1036"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata5740">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,205.70834)">
<g
id="g6342"
style="opacity:0.322">
<circle
r="371.18393"
cy="-244.80879"
cx="-61.365086"
id="path6288"
style="opacity:1;fill:none;fill-opacity:0.81042654;stroke:#ffffff;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="opacity:1;fill:none;fill-opacity:0.81042654;stroke:#ffffff;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle6290"
cx="-101.77624"
cy="-190.92725"
r="490.92065" />
<rect
y="94.123978"
x="78.772171"
height="6.8791666"
width="25.929167"
id="rect6292"
style="opacity:1;fill:#ffffff;fill-opacity:0.92890996;stroke:none;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:0.92890996;stroke:none;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect6317"
width="25.929167"
height="6.8791666"
x="78.772171"
y="262.50378" />
<circle
style="opacity:1;fill:none;fill-opacity:0.81042654;stroke:#ffffff;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle6344"
cx="-61.365086"
cy="-361.22528"
r="371.18393" />
<circle
r="371.18393"
cy="-461.76675"
cx="-61.365086"
id="circle6346"
style="opacity:1;fill:none;fill-opacity:0.81042654;stroke:#ffffff;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="opacity:1;fill:none;fill-opacity:0.81042654;stroke:#ffffff;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle6348"
cx="-61.365086"
cy="-535.8501"
r="371.18393" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:0.92890996;stroke:none;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect6350"
width="25.929167"
height="6.8791666"
x="78.772171"
y="-22.292683" />
<rect
y="-123.89268"
x="78.772171"
height="6.8791666"
width="25.929167"
id="rect6354"
style="opacity:1;fill:#ffffff;fill-opacity:0.92890996;stroke:none;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:0.92890996;stroke:none;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect6356"
width="25.929167"
height="6.8791666"
x="78.772171"
y="-197.97607" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

84
src/sprites/dots.svg Normal file
View file

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="30"
height="30"
viewBox="0 0 7.9374998 7.9375004"
version="1.1"
id="svg8"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="dots.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#111111"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="19.909475"
inkscape:cx="16.741834"
inkscape:cy="10.63598"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:showpageshadow="false"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1036"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid815" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-289.06249)">
<rect
style="opacity:0.051;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5700"
width="0.52916664"
height="0.52916664"
x="0"
y="296.47083" />
<rect
y="296.47083"
x="7.9375"
height="0.52916664"
width="0.52916664"
id="rect5733"
style="opacity:0.051;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:0.102;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5735"
width="0.52916664"
height="0.52916664"
x="3.7041667"
y="292.50208" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

145
src/sprites/logo_sm.svg Normal file
View file

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
viewBox="0 0 6.3499998 6.3499998"
version="1.1"
id="svg6364"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="logo_sm.svg">
<defs
id="defs6358">
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath6466">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path6468"
d="m 4.3340568,275.02894 h 9.7949472 l 5.662705,18.81696 H 4.3340568 Z"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.52916658;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
clip-path="none" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#111111"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="16"
inkscape:cx="-5.3422515"
inkscape:cy="16.073652"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:showpageshadow="false"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1036"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid6366" />
</sodipodi:namedview>
<metadata
id="metadata6361">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-290.65)">
<g
id="g6373"
clip-path="url(#clipPath6466)"
transform="matrix(0.3241467,0,0,0.30933959,-1.1402869,205.83724)"
style="stroke-width:3.15799522">
<ellipse
id="ellipse6390"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.67110562;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
ry="6.9238639"
rx="6.9239755"
cy="285.29712"
cx="13.302538" />
<path
cx="13.302538"
cy="284.2529"
rx="5.9107676"
ry="5.9046412"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.83555275;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path6398"
d=""
inkscape:connector-curvature="0" />
<path
cx="13.302538"
cy="284.2529"
rx="5.9107676"
ry="5.9046412"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.83555275;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path6400"
d=""
inkscape:connector-curvature="0" />
<path
cx="13.302538"
cy="284.2529"
rx="5.9107676"
ry="5.9046412"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.83555275;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path6402"
d=""
inkscape:connector-curvature="0" />
<path
cx="13.302538"
cy="284.2529"
rx="5.9107676"
ry="5.9046412"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.83555275;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path6404"
d=""
inkscape:connector-curvature="0" />
<path
cx="13.302538"
cy="284.2529"
rx="5.9107676"
ry="5.9046412"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.83555275;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path6425"
d=""
inkscape:connector-curvature="0" />
<ellipse
cx="13.302538"
cy="285.29712"
rx="2.4326823"
ry="2.4166644"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.67110562;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="ellipse6427" />
<path
style="opacity:1;fill:#ffff00;fill-opacity:1;stroke:#ffffff;stroke-width:1.67110562;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 12.168819,283.58398 -1.990075,-4.80764"
id="path6470"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View file

@ -1 +1,4 @@
$main_bg_color: #111111;
$main_text_color: white;
$content_bg_color: #191919;

View file

@ -1,2 +1,47 @@
@import "~raleway-cyrillic/raleway.css";
body {
background: $main_bg_color;
background: $main_bg_color url("../sprites/dots.svg");
//url("http://vault48.org/pixmaps/texture.jpg");
//background: #111111;
color: $main_text_color;
font-family: Raleway, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
font-size: 16px;
&::before {
content: '';
position: absolute;
height: 100%;
width: 100%;
top: 0;
left: 0;
z-index: -1;
background: url("../sprites/circles.svg");
pointer-events: none;
background-size: cover;
}
}
:global(.padded) {
padding: $gap;
}
:global(.default_container) {
max-width: $content_width;
margin: auto;
}
:global(.content_container) {
background: $content_bg_color;
}
:global(.head_container) {
background: $main_bg_color;
}
:global(.footer) {
height: 40px;
}

View file

@ -1 +1,11 @@
@import 'colors';
$cell: 256px;
$content_width: $cell * 5;
$gap: 8px;
$spc: $gap * 2;
$panel_radius: 1px;
@mixin outer_shadow() {
box-shadow: transparentize(white, 0.92) -1px -1px, transparentize(black, 0.8) 1px 1px;
}