styling mostly done

This commit is contained in:
Andrzej Stepien 2023-07-07 19:28:27 +02:00
parent da9924b7bd
commit 5d54f2985b
6 changed files with 232 additions and 89 deletions

View File

@ -40,6 +40,8 @@
To create a production bundle, use `npm run build` or `yarn build`.
-->
<script src="https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@500&family=VT323&display=swap" rel="stylesheet">
</body>
</html>

View File

@ -1,11 +1,144 @@
button{
width:100px;
height:100px;
background-color: gray;
margin: 10px;
font-size: 30px;
*,
*::before,
*::after {
box-sizing: border-box;
}
@font-face {
font-family: calculator;
src: url("DS-DIGIB.TTF");
}
html{
font-size: 16px;
}
#calculator{
width:550px;
margin:auto;
background: rgb(68,64,64);
background: linear-gradient(351deg, rgba(68,64,64,1) 0%, rgba(156,150,150,1) 100%);
padding: 1rem;
border-radius: 2rem;
}
#calculator-content{
display: grid;
grid-template-columns: repeat(4,1fr);
grid-template-rows: 1fr 1.6fr repeat(5,1fr);
grid-template-areas:
"header header header header"
"display display display display"
"functions functions functions operators"
"numbers numbers numbers operators"
"numbers numbers numbers operators"
"numbers numbers numbers operators"
"numbers numbers numbers operators"
;
gap:1rem;
}
#calculator-content > header{
grid-area: header;
font-family: 'Roboto', sans-serif;
}
#calculator-content > header > h1{
font-size: 3rem;
margin:0.5rem auto;
color: aliceblue;
opacity: 0.8;
}
#display-container{
grid-area: display;
justify-self: end;
align-self: end;
height:100%;
width:100%;
display: grid;
grid-template-rows: 1fr 6fr 1fr;
grid-template-areas:
"memory"
"main"
"operator"
;
background: linear-gradient(351deg, rgba(15,93,53,1) 0%, rgba(194,228,185,1) 100%);
font-family: 'VT323', monospace;
font-size: 1rem;
border-radius: 0.5rem;
padding:0.5rem;
box-shadow: 0.5rem 0.5rem 2rem inset;
}
#display-container > p {
margin:auto 0;
text-align: right;
line-height:1em;
opacity: 0.8;
}
#display{
font-size: 26px;;
font-family: calculator;
font-size: 6rem;
grid-area: main;
align-self: center;
}
#memory{
grid-area: memory;
align-self: center;
}
#operator{
grid-area: operator;
align-self: center;
}
.num-pad{
grid-area: numbers;
display: grid;
grid-template-columns: repeat(3,1fr);
grid-template-rows: repeat(4,1fr);
gap: 0.2rem;
}
.operator-pad{
grid-area: operators;
display: grid;
grid-template-rows: repeat(3,1fr) 2fr;
gap: 0.2rem;
}
.function-pad{
grid-area: functions;
display: grid;
grid-template-columns: repeat(3,1fr);
gap: 0.2rem;
}
button{
background: rgb(92,92,92);
background: linear-gradient(351deg, rgba(92,92,92,1) 0%, rgba(224,224,224,1) 100%);
font-size: 30px;
place-self: stretch;
border-radius: 1.5rem;
}

View File

@ -94,14 +94,16 @@ export default function Calculator(props){
return (
<>
<div id="calculator">
<div id="calculator-content">
<header><h1>CALCULATOR</h1></header>
<div id="display-container">
<p id="memory">{"memory: "+memory}</p>
<p id="memory">{memory}</p>
<p id="display">{main}</p>
<p id="operation">{"operation: "+operation}</p>
<p id="operator">{operation}</p>
</div>
<KeyPad handleInput={handleInput} />
</>
</div>
</div>
)
}

View File

@ -1,30 +1,36 @@
import Button from "./Button"
export default function NumPad(props){
const numberMap = {
zero:0,
one:1,
two:2,
three:3,
four:4,
five:5,
six:6,
seven:7,
eight:8,
nine:9,
decimal:"."
four:4,
five:5,
six:6,
one:1,
two:2,
three:3,
zero:0,
decimal:".",
equals:"="
}
const operatorMap = {
add:"+",
subtract:"-",
multiply:"x",
divide:"/",
add:"+",
}
const functionMap = {
on:"on",
off:"off",
clear:"C",
equals:"="
}
function buildButtons(map){
@ -43,7 +49,7 @@ export default function NumPad(props){
return(
<div className="keypad">
<>
<div className="num-pad">
{buildButtons(numberMap)}
</div>
@ -53,6 +59,6 @@ export default function NumPad(props){
<div className="function-pad">
{buildButtons(functionMap)}
</div>
</div>
</>
)
}

BIN
src/DS-DIGIB.TTF Normal file

Binary file not shown.

BIN
src/digital-7 (mono).ttf Normal file

Binary file not shown.