<!-- goal: use no images -->
<!-- it might not turn up correctly on your system because you wouldn't have the fancy fonts i used and codepen free doesn't allow me to upload assets :( -->
<!-- here's how it's supposed to look: https://imgur.com/a/IQKSUCW -->
<!-- compare it to an image of the actual calculator: https://imgur.com/M3z8UCm -->
<!--
fonts used:
- 'Helvetica' for buttons etc
- 'Eurostile Extended Black' for Casio logo
- 'Computer Modern' for "fx-82MS" in the top-right corner
- 'Pirulen' for "SVPAM"
- 'Scientifc Calculator LED' for "571^2"
- 'Segment7Standard' for "326041."
-->
<div class="calculator">
<span class="logo">Casio</span>
<span class="model">fx-82MS</span>
<span class="svpam">S-V.P.A.M.</span>
<div class="screen">
<div class="input">571^2</div>
<div class="main-display">326041.</div>
</div>
<div class="modifiers">
<button class="shift center-shift" tabindex="1"></button>
<button class="alpha center-alpha" tabindex="2"></button>
<button class="on center-shift" tabindex="4"></button>
<button class="mode" tabindex="3"></button>
</div>
<div class="replay">Replay</div>
<!--
<button class="nav up">▲</button>
<button class="nav down">▼</button>
<button class="nav left">◀︎</button>
<button class="nav right">▶︎</button>
-->
<table class="function-keys">
<tr>
<td><button class="reciprocal center-shift">x<span class="sup">-1</span></button></td>
<td><button class="combin center-shift">nCr</button></td>
<td></td>
<td></td>
<td><button class="pol">Pol(</button></td>
<td><button class="cube center-shift">x<span class="sup">3</span></button></td>
</tr>
<tr>
<td><button class="frac center-shift">a<span class="sup">b</span>/<span class="xxs">c</span></button></td>
<td><button>√</button></td>
<td><button class="square">x<span class="sup">2</span></button></td>
<td><button class="pow center-shift">^</button></td>
<td><button class="log center-shift">log</button></td>
<td><button class="ln">ln</button></td>
</tr>
<tr>
<td><button class="minus">(−)</button></td>
<td><button class="deg">°′″</button></td>
<td><button class="hyp">hyp</button></td>
<td><button class="sin">sin</button></td>
<td><button class="cos">cos</button></td>
<td><button class="tan">tan</button></td>
</tr>
<tr>
<td><button class="rcl center-shift">RCL</button></td>
<td><button class="eng center-shift">ENG</button></td>
<td><button class="open-paren">(</button></td>
<td><button class="close-paren">)</button></td>
<td><button class="comma">,</button></td>
<td><button class="mem-plus">M+</button></td>
</tr>
</table>
<table class="basic-keys">
<tr>
<td><button>7</button></td>
<td><button>8</button></td>
<td><button>9</button></td>
<td><button class="pink del center-shift">DEL</button></td>
<td><button class="pink ac center-shift">AC</button></td>
</tr>
<tr>
<td><button>4</button></td>
<td><button>5</button></td>
<td><button>6</button></td>
<td><button>×</button></td>
<td><button>÷</button></td>
</tr>
<tr>
<td><button class="one center-shift">1</button></td>
<td><button class="two center-shift">2</button></td>
<td><button>3</button></td>
<td><button>+</button></td>
<td><button>−</button></td>
</tr>
<tr>
<td><button class="zero center-shift">0</button></td>
<td><button class="period center-shift">.</button></td>
<td><button class="exp center-shift">EXP</button></td>
<td><button class="ans center-shift">Ans</button></td>
<td><button class="equals center-shift">=</button></td>
</tr>
</table>
</div>
body {
background: linear-gradient(135deg, #FAD7A1 10%, #E96D71 100%);
}
.calculator {
width: 18rem;
height: 35rem;
background: hsl(208, 28%, 35%);
background: linear-gradient(to top, hsl(208, 30%, 35%), hsl(208, 30%, 40%));
margin: 0 auto;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
border-bottom-left-radius: 100px 30px;
border-bottom-right-radius: 100px 30px;
position: absolute;
top: 50%;
transform: translateY(-50%) translatex(-50%);
left: 50%;
padding: 1.5rem;
color: hsl(225, 20%, 84%);
font-family: Helvetica;
box-shadow: 0 0 50px 5px hsla(0, 0%, 0%, .5);
}
.logo, .model, .svpam {
font-size: 90%;
}
.logo {
font-family: 'Eurostile Extended', Impact;
text-transform: uppercase;
}
.model {
float: right;
font-style: italic;
font-family: CMU;
}
.svpam {
width: 100%;
text-align: center;
display: inline-block;
color: hsl(353, 50%, 70%);
margin-top: .75em;
font-family: pirulen;
}
.screen {
width: 100%;
height: 4rem;
background: hsl(190, 20%, 88%);
border-radius: 4px;
box-shadow: inset 0 0 5px black;
margin: 1em 0;
color: black;
}
.screen .input {
font-family: 'Scientific Calculator LCD', monospace;
font-size: 1rem;
position: relative;
top: 12px;
left: 12px;
}
.screen .main-display {
font-family: 'Segment7Standard', monospace;
font-size: 2rem;
text-align: right;
vertical-align: bottom;
width: 275.2px;
display: block;
position: absolute;
padding: .4rem;
overflow-x: hidden;
}
button {
text-align: center;
cursor: pointer;
padding: 5px;
border: 0 white none;
box-sizing: border-box;
color: hsl(225, 20%, 84%);
position: relative;
box-shadow: 2px 2px 5px 0 hsla(0, 0%, 0%, .75);
}
table {
width: 100%;
border-collapse: collapse;
}
td {
text-align: center;
}
.modifiers {
margin: 1.5rem 0 1.75rem 0;
}
.modifiers button {
width: 2.35rem;
height: 1.25rem;
border-radius: 15px;
position: relative;
margin-right: .75rem;
background: hsl(221, 14%, 66%);
background: linear-gradient(to top, hsl(221, 14%, 66%), hsl(221, 14%, 71%));
}
.modifiers button::before, .modifiers button::after {
text-transform: uppercase;
}
.mode::before, .on::before {
color: hsl(225, 20%, 84%);
}
.shift {
left: 0;
}
.alpha {
top: 5px;
}
.mode {
float: right;
top: 11px;
}
.on {
float: right;
right: 0;
margin-right: .5em!important;
}
.shift::before {content: "Shift";}
.alpha::after {content: "Alpha";}
.mode::before {content: "Mode"; left: -9px}
.mode::after {content: "CLR"; right: -9px; color: hsl(34, 68%, 72%);}
.on::before {content: "ON";}
.replay {
background: linear-gradient(to top, hsl(221, 14%, 66%), hsl(221, 14%, 71%));
width: 78px;
height: 70px;
line-height: 70px;
position: absolute;
left: 38%;
top: 30%;
border-radius: 125px;
text-transform: uppercase;
font-size: 9px;
text-align: center;
vertical-align: middle;
box-shadow: 2px 2px 5px 0 hsla(0, 0%, 0%, .75);
}
button.nav {
position: absolute;
background: none;
box-shadow: none;
}
.function-keys {
margin: 1.5rem 0 .75rem 0;
}
.function-keys button {
background: hsl(198, 39%, 23%);
background: linear-gradient(to top, hsl(198, 39%, 23%), hsl(198, 39%, 28%));
font-size: small;
width: 2.25rem;
height: 1.5rem;
border-radius: 5px;
}
.function-keys td {
padding-bottom: 1rem;
padding-right: .25rem;
}
.basic-keys {}
.basic-keys button {
width: 2.5rem;
height: 1.75rem;
background: hsl(221, 14%, 66%);
background: linear-gradient(to top, hsl(221, 14%, 66%), hsl(221, 14%, 71%));
border-radius: 3px 3px 7px 7px;
}
.basic-keys td {
padding-bottom: 1rem;
padding-right: .25rem;
}
.basic-keys tr:last-child td {
padding-bottom: 0;
}
button.pink {
background: hsl(353, 50%, 70%);
background: linear-gradient(to top, hsl(353, 50%, 70%), hsl(353, 50%, 75%));
}
button::before, button::after {
position: absolute;
font-size: 9px;
top: -13px;
display: block;
width: 100%;
display: inline-block;
}
/* shift */
button::before {
color: hsl(34, 68%, 72%);
left: 0;
text-align: left;
}
/* alpha */
button::after {
color: hsl(353, 50%, 70%);
right: 0;
text-align: right;
}
.center-shift::before, .center-alpha::after {
text-align: center;
}
.del::before {content: "INS";}
.ac::before {content: "OFF";}
.reciprocal::before {content: "x!";}
.combin::before {content: "nPr";}
.pol::before {content: "Rec(";}
.pol::after {content: ":";}
.cube::before {content: "\221b";}
.frac::before {content: "d/c";}
.pow::before {content: "ˣ \221A"}
.log::before {content: "10 ˣ";}
.ln::before {content: "e ˣ";}
.ln::after {content: "e";}
.minus::before {content: "";}
.minus::after {content: "A";}
.deg::before {content: "\2190";}
.deg::after {content: "B";}
.hyp::after {content: "C";}
.sin::before {content: "sin \207b\b9";}
.cos::before {content: "cos \207b\b9";}
.tan::before {content: "tan \207b\b9";}
.sin::after {content: "D";}
.cos::after {content: "E";}
.tan::after {content: "F";}
.rcl::before {content: "STO";}
.eng::before {content: "\2190";}
.close::paren:after {content: "X";}
.comma::before {content: ";";}
.comma::after {content: "Y";}
.mem-plus::before {content: "M-";}
.mem-plus::after {content: "M";}
.zero::before {content: "Rnd";}
.period::before {content: "Ran#";}
.exp::before {content: "\03c0";}
.ans::before {content: "DRG\25ba";}
.equals::before {content: "%";}
.one::before {content: "S-SUM"; font-size: 8px; top: -10px}
.two::before {content: "S-VAR"; font-size: 8px; top: -10px}
/* jazzy 'x' */
/* .reciprocal, .square {} */
button span.sup {
font-size: xx-small!important;
vertical-align: super;
}
.sub {
font-size: xx-small;
vertical-align: bottom;
}
.xxs {
font-size: xx-small;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.