Removal of external linking
Signed-off-by: Alexander Davis <alex@adcm.uk>
@@ -1,8 +0,0 @@
|
||||
@font-face {
|
||||
font-family: 'DSEG7 Classic Regular';
|
||||
src: url(../../assets/fonts/DSEG7ClassicRegular.woff) format('woff'),
|
||||
url(../../assets/fonts/DSEG7ClassicRegular.ttf) format('truetype');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: auto;
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
@font-face {
|
||||
font-family: 'IEC symbols Unicode';
|
||||
src: url(../../assets/fonts/IEC%20symbols%20Unicode-7accb483a44c18d55e8700feb3ddc713.woff2?h=f58bcc159dfcde3a8902f3c3e5961248) format('woff2'),
|
||||
url(../../assets/fonts/IEC%20symbols%20Unicode-f2f2e5d8588f3b01658e423c74d599be.woff?h=f58bcc159dfcde3a8902f3c3e5961248) format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
@@ -1,629 +0,0 @@
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-501638185f142ea970e06ff6a896cf44.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-d845be6713e4acd3766e1f8f6418c97e.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8d07e5f373f5bb3603b3e139f63e3386.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8e1d10adf40d7223fbee98b930853a8a.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-db78de5246196d0d93187248cbebc6c2.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-6b97bb4aa11fb6d8c29b378b87c8ce45.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-69c9fb2f299f5f5be8d2800cd24271f9.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-501638185f142ea970e06ff6a896cf44.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-d845be6713e4acd3766e1f8f6418c97e.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8d07e5f373f5bb3603b3e139f63e3386.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8e1d10adf40d7223fbee98b930853a8a.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-db78de5246196d0d93187248cbebc6c2.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-6b97bb4aa11fb6d8c29b378b87c8ce45.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-69c9fb2f299f5f5be8d2800cd24271f9.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-501638185f142ea970e06ff6a896cf44.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-d845be6713e4acd3766e1f8f6418c97e.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8d07e5f373f5bb3603b3e139f63e3386.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8e1d10adf40d7223fbee98b930853a8a.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-db78de5246196d0d93187248cbebc6c2.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-6b97bb4aa11fb6d8c29b378b87c8ce45.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-69c9fb2f299f5f5be8d2800cd24271f9.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-501638185f142ea970e06ff6a896cf44.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-d845be6713e4acd3766e1f8f6418c97e.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8d07e5f373f5bb3603b3e139f63e3386.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8e1d10adf40d7223fbee98b930853a8a.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-db78de5246196d0d93187248cbebc6c2.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-6b97bb4aa11fb6d8c29b378b87c8ce45.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-69c9fb2f299f5f5be8d2800cd24271f9.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-501638185f142ea970e06ff6a896cf44.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-d845be6713e4acd3766e1f8f6418c97e.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8d07e5f373f5bb3603b3e139f63e3386.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8e1d10adf40d7223fbee98b930853a8a.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-db78de5246196d0d93187248cbebc6c2.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-6b97bb4aa11fb6d8c29b378b87c8ce45.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-69c9fb2f299f5f5be8d2800cd24271f9.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-9f11e6095a39b5e188d6a081f05299fb.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-c0b8741a9d891c8088e6db8ca3a4b5fa.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-991ff15c49155ffbda53e3aa14ecb8b6.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8b0bd5934b903f2631853751aedf28a6.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-aa0964911973a0fbaf081bae32a490f3.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-1b621eda4be3428e50a0ee070c09005b.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-d48b1d4d308900f0591fb3bdcf442fdf.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-9f11e6095a39b5e188d6a081f05299fb.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-c0b8741a9d891c8088e6db8ca3a4b5fa.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-991ff15c49155ffbda53e3aa14ecb8b6.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8b0bd5934b903f2631853751aedf28a6.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-aa0964911973a0fbaf081bae32a490f3.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-1b621eda4be3428e50a0ee070c09005b.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-d48b1d4d308900f0591fb3bdcf442fdf.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-9f11e6095a39b5e188d6a081f05299fb.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-c0b8741a9d891c8088e6db8ca3a4b5fa.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-991ff15c49155ffbda53e3aa14ecb8b6.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8b0bd5934b903f2631853751aedf28a6.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-aa0964911973a0fbaf081bae32a490f3.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-1b621eda4be3428e50a0ee070c09005b.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-d48b1d4d308900f0591fb3bdcf442fdf.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-9f11e6095a39b5e188d6a081f05299fb.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-c0b8741a9d891c8088e6db8ca3a4b5fa.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-991ff15c49155ffbda53e3aa14ecb8b6.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8b0bd5934b903f2631853751aedf28a6.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-aa0964911973a0fbaf081bae32a490f3.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-1b621eda4be3428e50a0ee070c09005b.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-d48b1d4d308900f0591fb3bdcf442fdf.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-9f11e6095a39b5e188d6a081f05299fb.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-c0b8741a9d891c8088e6db8ca3a4b5fa.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-991ff15c49155ffbda53e3aa14ecb8b6.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-8b0bd5934b903f2631853751aedf28a6.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-aa0964911973a0fbaf081bae32a490f3.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-1b621eda4be3428e50a0ee070c09005b.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
src: url(../../assets/fonts/Inter-d48b1d4d308900f0591fb3bdcf442fdf.woff2?h=e5f10e8edea6724df772779293114dec) format('woff2');
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(../../assets/fonts/Open%20Sans-95e85857855fec865b6c71369458c398.woff2?h=50bf27dcf1a8b0240d3e6638c4b5b7d2) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(../../assets/fonts/Open%20Sans-aaa666d4a428e7251998747fecc78290.woff2?h=50bf27dcf1a8b0240d3e6638c4b5b7d2) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(../../assets/fonts/Open%20Sans-78b0a85baaa30f24beb648328eafa7d2.woff2?h=50bf27dcf1a8b0240d3e6638c4b5b7d2) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(../../assets/fonts/Open%20Sans-61d49d1448f17f5c304c64dcd7e21de6.woff2?h=50bf27dcf1a8b0240d3e6638c4b5b7d2) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(../../assets/fonts/Open%20Sans-b97d58e7110272ce3bd9c10ea779a9f2.woff2?h=50bf27dcf1a8b0240d3e6638c4b5b7d2) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(../../assets/fonts/Open%20Sans-75740ec0c715f6b2a4a5d6d5224b0913.woff2?h=50bf27dcf1a8b0240d3e6638c4b5b7d2) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(../../assets/fonts/Open%20Sans-a6b0039aa2236f69d4b63042a8f3769a.woff2?h=50bf27dcf1a8b0240d3e6638c4b5b7d2) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(../../assets/fonts/Open%20Sans-8c179a95e52d0e855e33be00ed141e46.woff2?h=50bf27dcf1a8b0240d3e6638c4b5b7d2) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(../../assets/fonts/Open%20Sans-f020d8a91fea76d306428e8877dcc7d6.woff2?h=50bf27dcf1a8b0240d3e6638c4b5b7d2) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(../../assets/fonts/Open%20Sans-34eb5b5918b88fb910da76a70e512615.woff2?h=50bf27dcf1a8b0240d3e6638c4b5b7d2) format('woff2');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
@font-face {
|
||||
font-family: 'Seven Segment';
|
||||
src: url(../../assets/fonts/Seven%20Segment-2949e811e8b49e67e29f877a915145a4.woff2?h=f58bcc159dfcde3a8902f3c3e5961248) format('woff2'),
|
||||
url(../../assets/fonts/Seven%20Segment-4bffe92707a7a725aa309b14ed55c43e.woff?h=f58bcc159dfcde3a8902f3c3e5961248) format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
.slidecontainer {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.slider {
|
||||
-webkit-appearance: none;
|
||||
width: 100%;
|
||||
height: 25px;
|
||||
background: #d3d3d3;
|
||||
outline: none;
|
||||
opacity: 0.7;
|
||||
-webkit-transition: .2s;
|
||||
transition: opacity .2s;
|
||||
}
|
||||
|
||||
.slider:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.customiserButtons {
|
||||
background-color: var(--bs-btn-active-bg) !important;
|
||||
border-color: var(--bs-btn-active-border-color) !important;
|
||||
}
|
||||
|
||||
.customiserButtons:hover {
|
||||
background-color: #198754 !important;
|
||||
border-color: #198754 !important;
|
||||
}
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
:root, [data-bs-theme=light] {
|
||||
--bs-body-bg: rgb(39,38,46);
|
||||
--bs-body-bg-rgb: 39,38,46;
|
||||
--bs-link-color: #ffffff;
|
||||
--bs-link-color-rgb: 255,255,255;
|
||||
--bs-link-hover-color: #19f5aa;
|
||||
--bs-link-hover-color-rgb: 25,245,170;
|
||||
}
|
||||
|
||||
[data-bs-theme=dark] {
|
||||
--bs-link-color: #ffffff;
|
||||
--bs-link-color-rgb: 255,255,255;
|
||||
--bs-link-hover-color: #19f5aa;
|
||||
--bs-link-hover-color-rgb: 25,245,170;
|
||||
}
|
||||
|
||||
@@ -1,428 +0,0 @@
|
||||
html {
|
||||
background: #000000;
|
||||
color: rgb(255,255,255);
|
||||
--bs-primary: #dc3545;
|
||||
--bs-primary-rgb: 220,53,69;
|
||||
--bs-secondary: #198754;
|
||||
--bs-secondary-rgb: 25,135,84;
|
||||
}
|
||||
|
||||
.btn-primary, .btn-primary:focus {
|
||||
color: #fff;
|
||||
background-color: #dc3545;
|
||||
border-color: #dc3545;
|
||||
border-radius: 6px;
|
||||
padding: 6px 12px;
|
||||
}
|
||||
|
||||
.btn:hover, .btn-primary:hover {
|
||||
background-color: #0d6efd;
|
||||
border-color: #ffc107;
|
||||
}
|
||||
|
||||
.btnActive, .btnActive:focus {
|
||||
color: #fff;
|
||||
background-color: #198754;
|
||||
border-color: #198754;
|
||||
}
|
||||
|
||||
.poweredOn {
|
||||
filter: opacity(100%);
|
||||
}
|
||||
|
||||
.poweredOff {
|
||||
filter: opacity(5%);
|
||||
}
|
||||
|
||||
.overlay {
|
||||
transition: .5s ease;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.overlay:hover {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.central {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.centred {
|
||||
opacity: 1;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.reset {
|
||||
background-image: url("../../assets/img/BitBoxLogo.png?h=a50b3ddb5614299b0c00dd4f01bc402e");
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.homeIcon:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.homeIcon {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
opacity: 0.25;
|
||||
transition: .5s ease;
|
||||
}
|
||||
|
||||
.warning {
|
||||
background-color: #ffc107;
|
||||
border-color: #ffc107;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.warning:hover {
|
||||
background-color: #dc3545;
|
||||
border-color: #dc3545;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.bulb-text {
|
||||
text-align: center;
|
||||
font-size: 40px;
|
||||
font-family: 'Seven Segment Regular';
|
||||
position: relative;
|
||||
opacity: 0.75;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.stacked {
|
||||
position: relative;
|
||||
height: 110px;
|
||||
}
|
||||
|
||||
.bulbs {
|
||||
text-align: center;
|
||||
font-size: 48px;
|
||||
opacity: 0;
|
||||
/*position: absolute;*/
|
||||
/*margin-top: 1em;*/
|
||||
/*left: 50%;*/
|
||||
/*-webkit-transform: translate(-50%, -50%);*/
|
||||
/*z-index: 1;*/
|
||||
}
|
||||
|
||||
.bulb-div {
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.buttonMiddle {
|
||||
font-size: xx-large;
|
||||
font-family: 'IEC symbols Unicode';
|
||||
height: 62px;
|
||||
}
|
||||
|
||||
table .high-toggle {
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
table .mid-toggle {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
table .stacked {
|
||||
width: 11%;
|
||||
}
|
||||
|
||||
.btnUp {
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.btnDown {
|
||||
margin-top: 0px;
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
.btnUp svg, .btnDown svg {
|
||||
font-size: 5em;
|
||||
}
|
||||
|
||||
.simHeading {
|
||||
font-family: 'Seven Segment';
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.simData {
|
||||
text-align: center;
|
||||
color: #10ff00;
|
||||
font-family: 'DSEG7 Classic Regular';
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.simColumns {
|
||||
text-align: center;
|
||||
font-family: 'DSEG7 Classic Regular';
|
||||
color: rgb(255,255,255);
|
||||
}
|
||||
|
||||
.btnReset {
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.bs-icon {
|
||||
--bs-icon-size: .75rem;
|
||||
display: flex;
|
||||
flex-shrink: 0;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: var(--bs-icon-size);
|
||||
width: calc(var(--bs-icon-size) * 2);
|
||||
height: calc(var(--bs-icon-size) * 2);
|
||||
color: var(--bs-primary);
|
||||
}
|
||||
|
||||
.bs-icon-xs {
|
||||
--bs-icon-size: 1rem;
|
||||
width: calc(var(--bs-icon-size) * 1.5);
|
||||
height: calc(var(--bs-icon-size) * 1.5);
|
||||
}
|
||||
|
||||
.bs-icon-sm {
|
||||
--bs-icon-size: 1rem;
|
||||
}
|
||||
|
||||
.bs-icon-md {
|
||||
--bs-icon-size: 1.5rem;
|
||||
}
|
||||
|
||||
.bs-icon-lg {
|
||||
--bs-icon-size: 2rem;
|
||||
}
|
||||
|
||||
.bs-icon-xl {
|
||||
--bs-icon-size: 2.5rem;
|
||||
}
|
||||
|
||||
.bs-icon.bs-icon-primary {
|
||||
color: var(--bs-white);
|
||||
background: var(--bs-primary);
|
||||
}
|
||||
|
||||
.bs-icon.bs-icon-primary-light {
|
||||
color: var(--bs-primary);
|
||||
background: rgba(var(--bs-primary-rgb), .2);
|
||||
}
|
||||
|
||||
.bs-icon.bs-icon-semi-white {
|
||||
color: var(--bs-primary);
|
||||
background: rgba(255, 255, 255, .5);
|
||||
}
|
||||
|
||||
.bs-icon.bs-icon-rounded {
|
||||
border-radius: .5rem;
|
||||
}
|
||||
|
||||
.bs-icon.bs-icon-circle {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
opacity: 0;
|
||||
transform: translateY(2rem);
|
||||
transition: transform 0.5s;
|
||||
}
|
||||
|
||||
.dropdown:hover > .dropdown-menu {
|
||||
opacity: 1;
|
||||
transform: translateY(-2px);
|
||||
transition: opacity 0.5s, transform 0.5s;
|
||||
}
|
||||
|
||||
.introP {
|
||||
margin-bottom: 1rem !important;
|
||||
}
|
||||
|
||||
.completeFeatures {
|
||||
font-weight: bold;
|
||||
color: rgb(25,245,170);
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.hexColourToggles {
|
||||
margin-right: 5em;
|
||||
display: inline-grid;
|
||||
}
|
||||
|
||||
.hexColourTogglesEnd {
|
||||
display: inline-grid;
|
||||
}
|
||||
|
||||
.resetButton {
|
||||
font-weight: 600;
|
||||
color: black;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
top: 25%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
-ms-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%);
|
||||
}
|
||||
|
||||
.resetIcon {
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.bottomSpacer {
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
.spacer {
|
||||
height: 56px;
|
||||
}
|
||||
|
||||
.binaryButtons {
|
||||
margin: auto;
|
||||
display: flex;
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
.hexColourButtons {
|
||||
margin: auto;
|
||||
display: flex;
|
||||
height: 38px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.logicGateInput2 {
|
||||
float: left;
|
||||
margin-top: 4em;
|
||||
}
|
||||
|
||||
.logicGateInput1 {
|
||||
float: left;
|
||||
margin-top: 1.5em;
|
||||
}
|
||||
|
||||
.logicGateOutput {
|
||||
}
|
||||
|
||||
.logicGate {
|
||||
filter: invert(100%);
|
||||
margin: auto;
|
||||
padding: 10px;
|
||||
height: 15em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.oneInputRows {
|
||||
display: inline-flex;
|
||||
vertical-align: middle;
|
||||
justify-content: right;
|
||||
height: 75px;
|
||||
}
|
||||
|
||||
.twoInputRows {
|
||||
display: inline-flex;
|
||||
vertical-align: middle;
|
||||
justify-content: right;
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.singleInputSingleOutput {
|
||||
text-align: left;
|
||||
font-size: 72px;
|
||||
width: 20%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
float: left;
|
||||
margin-top: 90px;
|
||||
margin-left: -90px;
|
||||
}
|
||||
|
||||
.dualInputSingleOutput {
|
||||
text-align: left;
|
||||
font-size: 5em;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
float: left;
|
||||
margin-top: .90em;
|
||||
margin-left: -0.5em;
|
||||
}
|
||||
|
||||
.tableCells {
|
||||
width: 110px;
|
||||
}
|
||||
|
||||
.social-media {
|
||||
font-size: 25px;
|
||||
display: grid;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: var(--bs-success);
|
||||
}
|
||||
|
||||
a {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#mainNav.navbar-dark .navbar-nav > li.nav-item > a.nav-link:hover, #mainNav.navbar-dark .navbar-nav > li.nav-item > a.nav-link:focus {
|
||||
color: #19f5aa;
|
||||
}
|
||||
|
||||
#mainNav.navbar-dark .navbar-nav > li.nav-item > a.nav-link {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#mainNav .navbar-nav > li.nav-item > a.nav-link.active {
|
||||
font-weight: 700 !important;
|
||||
color: #19f5aa;
|
||||
}
|
||||
|
||||
.dropdown-item.active, .dropdown-item:active {
|
||||
color: #19f5aa!important;
|
||||
text-decoration: none;
|
||||
background-color: rgb(45, 44, 56);
|
||||
}
|
||||
|
||||
.dropdown-item:hover, .dropdown-item:focus {
|
||||
color: #19f5aa;
|
||||
background-color: var(--bs-dropdown-link-hover-bg);
|
||||
}
|
||||
|
||||
.vertical-center {
|
||||
transform: rotate(-90deg);
|
||||
-ms-transform: translateY(-50%);
|
||||
top: 50%;
|
||||
margin: auto;
|
||||
position: relative;
|
||||
width: 8em;
|
||||
}
|
||||
|
||||
.hexSliders {
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
.hexadecimalButtons {
|
||||
margin: 0.5em auto 0.5em auto;
|
||||
display: flex;
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
1
Export/assets/css/styles.min.css
vendored
|
Before Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 425 KiB |
|
Before Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 57 KiB |
@@ -1,210 +0,0 @@
|
||||
// ** Check if the filename contains "binary" **
|
||||
if (window.location.pathname.includes('binary')) {
|
||||
|
||||
let denary = 0;
|
||||
let bits = {
|
||||
'-128': false,
|
||||
'1': false,
|
||||
'2': false,
|
||||
'4': false,
|
||||
'8': false,
|
||||
'16': false,
|
||||
'32': false,
|
||||
'64': false,
|
||||
'128': false
|
||||
};
|
||||
|
||||
let bitValues = [];
|
||||
const twosComplementCheck = document.getElementById("blbN128");
|
||||
|
||||
// ** Initialize the bit values on page load **
|
||||
function initialize() {
|
||||
setBitValues(); // Set the bit values dynamically
|
||||
resetBinarySimulator(); // Reset the simulator to the initial state
|
||||
}
|
||||
|
||||
// ** Dynamically set bit values based on 2's complement mode **
|
||||
function setBitValues() {
|
||||
bitValues = twosComplementCheck
|
||||
? [-128, 64, 32, 16, 8, 4, 2, 1]
|
||||
: [128, 64, 32, 16, 8, 4, 2, 1];
|
||||
}
|
||||
|
||||
// ** Helper function to toggle power for a specific bit **
|
||||
function togglePower(bitValue, isActive) {
|
||||
const bitId = bitValue < 0 ? `N${Math.abs(bitValue)}` : bitValue;
|
||||
const bulb = document.getElementById(`blb${bitId}`);
|
||||
const switchBtn = document.getElementById(`swt${bitId}`);
|
||||
if (bulb && switchBtn) {
|
||||
bulb.classList.toggle('poweredOn', isActive);
|
||||
bulb.classList.toggle('poweredOff', !isActive);
|
||||
switchBtn.classList.toggle('btnActive', isActive);
|
||||
}
|
||||
}
|
||||
|
||||
// ** Reset all bits and denary **
|
||||
function resetBinarySimulator() {
|
||||
Object.keys(bits).forEach(bit => {
|
||||
togglePower(parseInt(bit, 10), false);
|
||||
bits[bit] = false;
|
||||
});
|
||||
denary = 0;
|
||||
updateBinary();
|
||||
}
|
||||
|
||||
// ** Toggle a specific bit **
|
||||
function changeBit(bitValue) {
|
||||
const key = getBitKey(bitValue);
|
||||
const isActive = bits[key];
|
||||
togglePower(bitValue, !isActive);
|
||||
bits[key] = !isActive;
|
||||
denary += isActive ? -bitValue : bitValue;
|
||||
updateBinary();
|
||||
}
|
||||
|
||||
// ** Update binary string and denary display **
|
||||
function updateBinary() {
|
||||
const binary = bitValues.map(bit => (bits[getBitKey(bit)] ? '1' : '0')).join('');
|
||||
document.getElementById("denaryNumber").innerText = denary;
|
||||
document.getElementById("binaryNumber").innerText = binary;
|
||||
}
|
||||
|
||||
// ** Parse a custom binary string and set bits accordingly **
|
||||
function customBinaryParser(binaryPattern) {
|
||||
resetBinarySimulator();
|
||||
binaryPattern = binaryPattern.padStart(8, '0'); // Ensure 8-bit format
|
||||
binaryPattern.split('').forEach((bit, index) => {
|
||||
if (bit === '1') {
|
||||
changeBit(bitValues[index]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// ** Parse a custom denary value and set bits accordingly **
|
||||
function customDenaryParser(customDenary) {
|
||||
const min = twosComplementCheck ? -128 : 0;
|
||||
const max = twosComplementCheck ? 127 : 255;
|
||||
|
||||
if (customDenary === null) {
|
||||
customDenary = 0; // Default to 0 if user cancels input
|
||||
}
|
||||
|
||||
if (customDenary < min || customDenary > max) {
|
||||
alert(`Invalid input! Please enter a denary value between ${min} and ${max}.`);
|
||||
return requestDenary(); // Prompt user again
|
||||
}
|
||||
|
||||
resetBinarySimulator();
|
||||
if (twosComplementCheck && customDenary < 0) {
|
||||
let absDenary = Math.abs(customDenary);
|
||||
if (customDenary === -128) {
|
||||
changeBit(-128);
|
||||
} else {
|
||||
bitValues.forEach(bit => {
|
||||
if (absDenary >= Math.abs(bit)) {
|
||||
changeBit(bit);
|
||||
absDenary -= Math.abs(bit);
|
||||
}
|
||||
});
|
||||
twosComplementFlip();
|
||||
}
|
||||
} else {
|
||||
bitValues.forEach(bit => {
|
||||
if (customDenary >= Math.abs(bit)) {
|
||||
changeBit(bit);
|
||||
customDenary -= Math.abs(bit);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// ** Handle logical binary shifting (left or right) **
|
||||
function shiftBinary(direction) {
|
||||
const binaryString = document.getElementById("binaryNumber").innerText;
|
||||
let shiftedBinary;
|
||||
if (direction === 'left') {
|
||||
shiftedBinary = binaryString.slice(1) + '0';
|
||||
} else if (direction === 'right') {
|
||||
shiftedBinary = '0' + binaryString.slice(0, -1);
|
||||
}
|
||||
customBinaryParser(shiftedBinary);
|
||||
}
|
||||
|
||||
// ** Handle arithmetic shifting for 2's complement **
|
||||
function shiftTwosComplement(direction) {
|
||||
const binaryString = document.getElementById("binaryNumber").innerText;
|
||||
let shiftedBinary;
|
||||
if (direction === 'left') {
|
||||
shiftedBinary = binaryString.slice(1) + '0';
|
||||
} else if (direction === 'right') {
|
||||
shiftedBinary = binaryString[0] + binaryString.slice(0, -1);
|
||||
}
|
||||
customBinaryParser(shiftedBinary);
|
||||
}
|
||||
|
||||
// ** Flip binary bits for 2's complement **
|
||||
function twosComplementFlip() {
|
||||
let binary = document.getElementById("binaryNumber").innerText;
|
||||
const flippedBinary = binary.split('').map(bit => (bit === '1' ? '0' : '1')).join('');
|
||||
const result = addBinaryNumbers(flippedBinary, '00000001');
|
||||
customBinaryParser(result.binaryResult);
|
||||
}
|
||||
|
||||
// ** Add two binary numbers **
|
||||
function addBinaryNumbers(binary1, binary2) {
|
||||
let carry = 0;
|
||||
let result = '';
|
||||
for (let i = 7; i >= 0; i--) {
|
||||
const bit1 = parseInt(binary1[i], 10) || 0;
|
||||
const bit2 = parseInt(binary2[i], 10) || 0;
|
||||
const sum = bit1 + bit2 + carry;
|
||||
result = (sum % 2) + result;
|
||||
carry = Math.floor(sum / 2);
|
||||
}
|
||||
return { binaryResult: result.slice(-8), overflow: carry ? '1' : '0' };
|
||||
}
|
||||
|
||||
// ** Helper to normalize bit keys **
|
||||
function getBitKey(bitValue) {
|
||||
return bitValue < 0 ? `N${Math.abs(bitValue)}` : bitValue.toString();
|
||||
}
|
||||
|
||||
// ** Request binary input from user **
|
||||
function requestBinary() {
|
||||
let binary;
|
||||
do {
|
||||
binary = prompt("Please enter an 8-bit Binary Value (only 0s and 1s are allowed):");
|
||||
if (binary === null) {
|
||||
binary = "00000000"; // Default to 0 if user cancels input
|
||||
break;
|
||||
}
|
||||
if (!/^[01]{1,8}$/.test(binary)) {
|
||||
alert("Invalid input! Binary values must be up to 8 digits long and only contain 0 or 1.");
|
||||
}
|
||||
} while (!/^[01]{1,8}$/.test(binary));
|
||||
customBinaryParser(binary);
|
||||
}
|
||||
|
||||
// ** Request denary input from user **
|
||||
function requestDenary() {
|
||||
let customDenary;
|
||||
const min = twosComplementCheck ? -128 : 0;
|
||||
const max = twosComplementCheck ? 127 : 255;
|
||||
|
||||
do {
|
||||
customDenary = prompt(`Enter a Denary Value (${min} to ${max}):`);
|
||||
if (customDenary === null) {
|
||||
customDenary = 0; // Default to 0 if user cancels input
|
||||
break;
|
||||
}
|
||||
customDenary = parseInt(customDenary, 10);
|
||||
if (isNaN(customDenary) || customDenary < min || customDenary > max) {
|
||||
alert(`Invalid input! Please enter a denary value between ${min} and ${max}.`);
|
||||
}
|
||||
} while (isNaN(customDenary) || customDenary < min || customDenary > max);
|
||||
customDenaryParser(customDenary);
|
||||
}
|
||||
|
||||
// ** On page load, initialize the simulator **
|
||||
document.addEventListener("DOMContentLoaded", initialize);
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
(function() {
|
||||
"use strict"; // Start of use strict
|
||||
|
||||
function initParallax() {
|
||||
|
||||
if (!('requestAnimationFrame' in window)) return;
|
||||
if (/Mobile|Android/.test(navigator.userAgent)) return;
|
||||
|
||||
var parallaxItems = document.querySelectorAll('[data-bss-parallax]');
|
||||
|
||||
if (!parallaxItems.length) return;
|
||||
|
||||
var defaultSpeed = 0.5;
|
||||
var visible = [];
|
||||
var scheduled;
|
||||
|
||||
window.addEventListener('scroll', scroll);
|
||||
window.addEventListener('resize', scroll);
|
||||
|
||||
scroll();
|
||||
|
||||
function scroll() {
|
||||
|
||||
visible.length = 0;
|
||||
|
||||
for (var i = 0; i < parallaxItems.length; i++) {
|
||||
var rect = parallaxItems[i].getBoundingClientRect();
|
||||
var speed = parseFloat(parallaxItems[i].getAttribute('data-bss-parallax-speed'), 10) || defaultSpeed;
|
||||
|
||||
if (rect.bottom > 0 && rect.top < window.innerHeight) {
|
||||
visible.push({
|
||||
speed: speed,
|
||||
node: parallaxItems[i]
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
cancelAnimationFrame(scheduled);
|
||||
|
||||
if (visible.length) {
|
||||
scheduled = requestAnimationFrame(update);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function update() {
|
||||
|
||||
for (var i = 0; i < visible.length; i++) {
|
||||
var node = visible[i].node;
|
||||
var speed = visible[i].speed;
|
||||
|
||||
node.style.transform = 'translate3d(0, ' + (-window.scrollY * speed) + 'px, 0)';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
initParallax();
|
||||
})(); // End of use strict
|
||||
|
||||
@@ -1,113 +0,0 @@
|
||||
const LIGHT_MULTIPLIER = 100 / 15;
|
||||
const COLORS = ['R', 'G', 'B'];
|
||||
const PLACES = [1, 16];
|
||||
|
||||
let denary = 0;
|
||||
let redDenary = 0;
|
||||
let greenDenary = 0;
|
||||
let blueDenary = 0;
|
||||
let redBinary = "";
|
||||
let greenBinary = "";
|
||||
let blueBinary = "";
|
||||
let hexadecimal = "";
|
||||
|
||||
const places = {
|
||||
R16: 0, R1: 0,
|
||||
G16: 0, G1: 0,
|
||||
B16: 0, B1: 0
|
||||
};
|
||||
|
||||
function resetColours() {
|
||||
COLORS.forEach(color => {
|
||||
PLACES.forEach(place => {
|
||||
resetPlace(color, place);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function resetPlace(color, place) {
|
||||
const placeKey = `${color}${place}`;
|
||||
places[placeKey] = 0;
|
||||
const light = (LIGHT_MULTIPLIER * places[placeKey]) / 100;
|
||||
document.getElementById(`blb${placeKey}`).style.opacity = light;
|
||||
updateColours();
|
||||
}
|
||||
|
||||
function togglePlace(color, place, direction) {
|
||||
const placeKey = `${color}${place}`;
|
||||
const currentValue = places[placeKey];
|
||||
if ((direction === 'up' && currentValue < 15) || (direction === 'down' && currentValue > 0)) {
|
||||
places[placeKey] += direction === 'up' ? 1 : -1;
|
||||
const light = (LIGHT_MULTIPLIER * places[placeKey]) / 100;
|
||||
document.getElementById(`blb${placeKey}`).style.opacity = light;
|
||||
updateColours();
|
||||
}
|
||||
}
|
||||
|
||||
function updateColours() {
|
||||
redDenary = (places.R16 * 16) + places.R1;
|
||||
greenDenary = (places.G16 * 16) + places.G1;
|
||||
blueDenary = (places.B16 * 16) + places.B1;
|
||||
|
||||
denary = `${redDenary}, ${greenDenary}, ${blueDenary}`;
|
||||
hexadecimal = `#${convertToHex(places.R16)}${convertToHex(places.R1)}${convertToHex(places.G16)}${convertToHex(places.G1)}${convertToHex(places.B16)}${convertToHex(places.B1)}`;
|
||||
|
||||
redBinary = `${convertToBinary(places.R16)}${convertToBinary(places.R1)}`;
|
||||
greenBinary = `${convertToBinary(places.G16)}${convertToBinary(places.G1)}`;
|
||||
blueBinary = `${convertToBinary(places.B16)}${convertToBinary(places.B1)}`;
|
||||
|
||||
document.getElementById("denaryNumber").innerHTML = denary;
|
||||
document.getElementById("hexadecimalNumber").innerHTML = hexadecimal;
|
||||
document.getElementById("colouredHex").style.backgroundColor = hexadecimal;
|
||||
document.getElementById("invertedHex").style.backgroundColor = invertedHex();
|
||||
document.getElementById("redBinaryNumber").innerHTML = redBinary;
|
||||
document.getElementById("blueBinaryNumber").innerHTML = blueBinary;
|
||||
document.getElementById("greenBinaryNumber").innerHTML = greenBinary;
|
||||
}
|
||||
|
||||
function invertedHex() {
|
||||
return `#${convertToHex(15 - places.R16)}${convertToHex(15 - places.R1)}${convertToHex(15 - places.G16)}${convertToHex(15 - places.G1)}${convertToHex(15 - places.B16)}${convertToHex(15 - places.B1)}`;
|
||||
}
|
||||
|
||||
function convertToHex(num) {
|
||||
return num < 10 ? num.toString() : String.fromCharCode(55 + num); // 55 = ASCII offset for A (65) - 10
|
||||
}
|
||||
|
||||
function convertToBinary(num) {
|
||||
return num.toString(2).padStart(4, '0');
|
||||
}
|
||||
|
||||
function updateHex(customHex) {
|
||||
if (!customHex) {
|
||||
resetColours();
|
||||
} else {
|
||||
if (customHex.charAt(0) === "#") customHex = customHex.slice(1);
|
||||
if (isHex(customHex) && customHex.length === 6) {
|
||||
customHex.split('').forEach((digit, i) => {
|
||||
const color = COLORS[Math.floor(i / 2)];
|
||||
const place = i % 2 === 0 ? 16 : 1;
|
||||
const placeKey = `${color}${place}`;
|
||||
places[placeKey] = parseInt(digit, 16);
|
||||
const light = (LIGHT_MULTIPLIER * places[placeKey]) / 100;
|
||||
document.getElementById(`blb${placeKey}`).style.opacity = light;
|
||||
});
|
||||
updateColours();
|
||||
} else {
|
||||
alert("Invalid Entry");
|
||||
resetColours();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function isHex(str) {
|
||||
return /^[0-9A-Fa-f]+$/.test(str);
|
||||
}
|
||||
|
||||
function requestHex() {
|
||||
const customHex = prompt("Please enter your Hex Value");
|
||||
updateHex(customHex);
|
||||
}
|
||||
|
||||
function invertHex() {
|
||||
updateHex(invertedHex());
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
// Ensure the script only runs if the URL path contains "hexadecimal"
|
||||
if (window.location.pathname.includes('hexadecimal')) {
|
||||
|
||||
const isGCSE = window.location.pathname.includes('gcse-hexadecimal');
|
||||
const hexLength = isGCSE ? 2 : 4;
|
||||
const binaryLength = isGCSE ? 8 : 16;
|
||||
const maxDenary = isGCSE ? 255 : 65535;
|
||||
|
||||
const placeValues = { 1: 0, 16: 0, 256: 0, 4096: 0 };
|
||||
const sliders = {};
|
||||
const columnValues = isGCSE ? [16, 1] : [4096, 256, 16, 1];
|
||||
|
||||
// Attach event listeners for sliders
|
||||
['slider1', 'slider16', 'slider256', 'slider4096'].forEach((sliderId) => {
|
||||
const slider = document.getElementById(sliderId);
|
||||
if (slider) {
|
||||
sliders[sliderId] = slider;
|
||||
slider.addEventListener("input", (e) => {
|
||||
e.stopPropagation(); // Prevent event propagation to Bootstrap
|
||||
updatePlace(parseInt(sliderId.replace('slider', ''), 10));
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
function updatePlace(place) {
|
||||
if (sliders[`slider${place}`]) {
|
||||
placeValues[place] = parseInt(sliders[`slider${place}`].value, 10);
|
||||
updateNumbers();
|
||||
}
|
||||
}
|
||||
|
||||
function updateNumbers() {
|
||||
let denary = 0;
|
||||
let binary = '';
|
||||
let hexadecimal = '';
|
||||
|
||||
columnValues.forEach((column) => {
|
||||
const value = placeValues[column];
|
||||
denary += value * column;
|
||||
binary += convertToBinary(value);
|
||||
hexadecimal += convertToHex(value);
|
||||
});
|
||||
|
||||
binary = binary.slice(-binaryLength).padStart(binaryLength, '0');
|
||||
hexadecimal = hexadecimal.slice(-hexLength).padStart(hexLength, '0');
|
||||
|
||||
document.getElementById("binaryNumber").innerText = binary;
|
||||
document.getElementById("denaryNumber").innerText = denary;
|
||||
document.getElementById("hexadecimalNumber").innerText = hexadecimal;
|
||||
}
|
||||
|
||||
function convertToBinary(num) {
|
||||
return num.toString(2).padStart(4, '0');
|
||||
}
|
||||
|
||||
function convertToHex(num) {
|
||||
return num.toString(16).toUpperCase();
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
updateNumbers();
|
||||
});
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
let inputs = {
|
||||
input1: false,
|
||||
input2: false
|
||||
};
|
||||
|
||||
let gateValue = false;
|
||||
|
||||
// ** Toggle input (handles both input1 and input2) **
|
||||
function toggleInput(inputNumber) {
|
||||
const inputKey = `input${inputNumber}`;
|
||||
inputs[inputKey] = !inputs[inputKey];
|
||||
updateInputState(`swtInput${inputNumber}`, inputs[inputKey]);
|
||||
updateGate();
|
||||
}
|
||||
|
||||
// ** Update the gate's state based on the current inputs and gate type **
|
||||
function updateGate() {
|
||||
const pageHeading = document.getElementById("pageHeading").textContent;
|
||||
gateValue = evaluateGate(pageHeading);
|
||||
updateGateLight(pageHeading, gateValue);
|
||||
}
|
||||
|
||||
// ** Evaluate the gate logic **
|
||||
function evaluateGate(pageHeading) {
|
||||
const { input1, input2 } = inputs;
|
||||
|
||||
switch (pageHeading) {
|
||||
case "AND Gate":
|
||||
return input1 && input2;
|
||||
case "OR Gate":
|
||||
return input1 || input2;
|
||||
case "NOT Gate":
|
||||
return !input1; // NOT gate only uses Input1
|
||||
case "NAND Gate":
|
||||
return !(input1 && input2); // Correct NAND logic
|
||||
case "NOR Gate":
|
||||
return !(input1 || input2);
|
||||
case "XOR Gate":
|
||||
return input1 !== input2; // XOR is true if inputs are different
|
||||
case "XNOR Gate":
|
||||
return input1 === input2; // XNOR is true if inputs are the same
|
||||
default:
|
||||
console.error("Unknown Gate Type");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ** Update the lightbulb based on the gate's value **
|
||||
function updateGateLight(pageHeading, value) {
|
||||
const lightBulbId = getLightBulbId(pageHeading);
|
||||
const lightBulb = document.getElementById(lightBulbId);
|
||||
if (lightBulb) {
|
||||
lightBulb.classList.toggle("poweredOn", value);
|
||||
lightBulb.classList.toggle("poweredOff", !value);
|
||||
}
|
||||
}
|
||||
|
||||
// ** Get the correct lightbulb ID based on the gate type **
|
||||
function getLightBulbId(pageHeading) {
|
||||
switch (pageHeading) {
|
||||
case "AND Gate":
|
||||
return "blbAndGate";
|
||||
case "OR Gate":
|
||||
return "blbOrGate";
|
||||
case "NOT Gate":
|
||||
return "blbNotGate";
|
||||
case "NAND Gate":
|
||||
return "blbNandGate";
|
||||
case "NOR Gate":
|
||||
return "blbNorGate";
|
||||
case "XOR Gate":
|
||||
return "blbXorGate";
|
||||
case "XNOR Gate":
|
||||
return "blbXnorGate";
|
||||
default:
|
||||
console.error("Unknown Gate Type");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// ** Update the toggle switch to reflect its active/inactive state **
|
||||
function updateInputState(switchId, isActive) {
|
||||
const toggleSwitch = document.getElementById(switchId);
|
||||
if (toggleSwitch) {
|
||||
toggleSwitch.classList.toggle("btnActive", isActive);
|
||||
}
|
||||
}
|
||||
|
||||
// ** Reset the gate to its default state **
|
||||
function resetGate() {
|
||||
inputs.input1 = false;
|
||||
inputs.input2 = false;
|
||||
updateInputState("swtInput1", inputs.input1);
|
||||
updateInputState("swtInput2", inputs.input2);
|
||||
|
||||
const pageHeading = document.getElementById("pageHeading").textContent;
|
||||
|
||||
if (pageHeading === "NOT Gate") {
|
||||
// For NOT Gate, the light should be on by default
|
||||
gateValue = true;
|
||||
updateGateLight(pageHeading, gateValue);
|
||||
} else {
|
||||
updateGate();
|
||||
}
|
||||
}
|
||||