diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..13d231b
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,8 @@
+{
+ "singleQuote": true,
+ "trailingComma": "es5",
+ "bracketSpacing": true,
+ "tabWidth": 2,
+ "printWidth": 80,
+ "semi": true
+}
diff --git a/package-lock.json b/package-lock.json
index 1c3782e..26da338 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,6 +12,7 @@
"@vueuse/nuxt": "^9.3.1",
"husky": "^8.0.2",
"nuxt": "^3.0.0",
+ "prettier": "^2.8.0",
"sass": "^1.55.0",
"vue-tsc": "^1.0.9"
}
@@ -6071,6 +6072,21 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/prettier": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz",
+ "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
"node_modules/pretty-bytes": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.0.0.tgz",
@@ -12363,6 +12379,12 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true
},
+ "prettier": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz",
+ "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==",
+ "dev": true
+ },
"pretty-bytes": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.0.0.tgz",
diff --git a/package.json b/package.json
index f3ae8ee..603d623 100644
--- a/package.json
+++ b/package.json
@@ -23,6 +23,7 @@
"@vueuse/nuxt": "^9.3.1",
"husky": "^8.0.2",
"nuxt": "^3.0.0",
+ "prettier": "^2.8.0",
"sass": "^1.55.0",
"vue-tsc": "^1.0.9"
}
diff --git a/src/app.vue b/src/app.vue
index f3d5c47..f8eacfa 100644
--- a/src/app.vue
+++ b/src/app.vue
@@ -1,5 +1,5 @@
-
+
diff --git a/src/assets/styles/_fonts.scss b/src/assets/styles/_fonts.scss
index 66c846c..998ee4c 100644
--- a/src/assets/styles/_fonts.scss
+++ b/src/assets/styles/_fonts.scss
@@ -8,10 +8,10 @@
font-family: $font-family;
src: url('#{$font-with-path}.eot');
src: local('#{$font-with-dash}'), local('#{$font-with-space}'),
- url('#{$font-with-path}.eot?#iefix') format('embedded-opentype'),
- url('#{$font-with-path}.woff2') format('woff2'),
- url('#{$font-with-path}.woff') format('woff'),
- url('#{$font-with-path}.ttf') format('truetype');
+ url('#{$font-with-path}.eot?#iefix') format('embedded-opentype'),
+ url('#{$font-with-path}.woff2') format('woff2'),
+ url('#{$font-with-path}.woff') format('woff'),
+ url('#{$font-with-path}.ttf') format('truetype');
font-weight: $weight;
font-style: normal;
}
@@ -19,11 +19,12 @@
@font-face {
font-family: $font-family;
src: url('#{$font-with-path}Italic.eot');
- src: local('#{$font-with-dash}Italic'), local('#{$font-with-space} Italic'),
- url('#{$font-with-path}Italic.eot?#iefix') format('embedded-opentype'),
- url('#{$font-with-path}Italic.woff2') format('woff2'),
- url('#{$font-with-path}Italic.woff') format('woff'),
- url('#{$font-with-path}Italic.ttf') format('truetype');
+ src: local('#{$font-with-dash}Italic'),
+ local('#{$font-with-space} Italic'),
+ url('#{$font-with-path}Italic.eot?#iefix') format('embedded-opentype'),
+ url('#{$font-with-path}Italic.woff2') format('woff2'),
+ url('#{$font-with-path}Italic.woff') format('woff'),
+ url('#{$font-with-path}Italic.ttf') format('truetype');
font-weight: $weight;
font-style: italic;
}
@@ -38,14 +39,15 @@ $fonts: (
Black: 700,
);
-@include MakeFont('Formular', $fonts, '@/assets/fonts/formular');
-
@font-face {
font-family: 'Computer Modern Serif';
src: url('@/assets/fonts/computer-modern/cmunrm.eot');
- src: url('@/assets/fonts/computer-modern/cmunrm.eot?#iefix') format('embedded-opentype'),
- url('@/assets/fonts/computer-modern/cmunrm.woff') format('woff'),
- url('@/assets/fonts/computer-modern/cmunrm.ttf') format('truetype');
+ src: url('@/assets/fonts/computer-modern/cmunrm.eot?#iefix')
+ format('embedded-opentype'),
+ url('@/assets/fonts/computer-modern/cmunrm.woff') format('woff'),
+ url('@/assets/fonts/computer-modern/cmunrm.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
+
+@include MakeFont('Formular', $fonts, '@/assets/fonts/formular');
diff --git a/src/assets/styles/_scroll.scss b/src/assets/styles/_scroll.scss
index 2158625..e3187bf 100644
--- a/src/assets/styles/_scroll.scss
+++ b/src/assets/styles/_scroll.scss
@@ -7,6 +7,6 @@
}
::-webkit-scrollbar-thumb {
- background-color: var(--scroll-color);
transition: background-color 0.1s;
+ background-color: var(--scroll-color);
}
diff --git a/src/assets/styles/main.scss b/src/assets/styles/main.scss
index d76d7e4..5d1077a 100644
--- a/src/assets/styles/main.scss
+++ b/src/assets/styles/main.scss
@@ -4,15 +4,17 @@
@import 'scroll';
@import 'animations';
-html, body, #__nuxt {
+html,
+body,
+#__nuxt {
width: 100%;
height: 100%;
}
body {
- background-color: var(--background-color-primary);
- color: var(--font-color-primary);
font-family: Formular, Helvetica, Arial, sans-serif;
+ color: var(--font-color-primary);
+ background-color: var(--background-color-primary);
}
button {
@@ -21,7 +23,8 @@ button {
cursor: pointer;
}
-h1, h2 {
+h1,
+h2 {
font-size: 20px;
font-weight: 600;
}
diff --git a/src/components/accordion.vue b/src/components/accordion.vue
index 7287efb..37b1988 100644
--- a/src/components/accordion.vue
+++ b/src/components/accordion.vue
@@ -1,5 +1,5 @@
@@ -8,11 +8,11 @@ const showForm = ref(false);
-
+
@@ -26,8 +26,8 @@ const showForm = ref(false);
.header {
display: flex;
- justify-content: space-between;
align-items: center;
+ justify-content: space-between;
column-gap: 12px;
user-select: none;
cursor: pointer;
diff --git a/src/components/board.vue b/src/components/board.vue
index 24a15e5..6eec020 100644
--- a/src/components/board.vue
+++ b/src/components/board.vue
@@ -7,14 +7,20 @@ onMounted(() => {
canvas.value.width = window.innerWidth;
canvas.value.height = window.innerHeight;
- const ctx = canvas.value.getContext("2d");
+ const ctx = canvas.value.getContext('2d');
if (!ctx) return;
- ctx.fillStyle = "red";
+ ctx.fillStyle = 'red';
type Point = [number, number, number, number];
+ const sizeX = canvas.value.width;
+ const sizeY = canvas.value.height;
+
+ const centerX = sizeX / 2;
+ const centerY = sizeY / 2;
+
const points: Point[] = [
[500, 500, 500, 1],
[500, 500, 700, 1],
@@ -87,16 +93,6 @@ onMounted(() => {
];
};
- // Identity matrix
- const identity = (): Point[] => {
- return [
- [1, 0, 0, 0],
- [0, 1, 0, 0],
- [0, 0, 1, 0],
- [0, 0, 0, 1],
- ];
- };
-
// Multiply array of points by matrix
const multiply = (points: Point[], matrix: Point[]): Point[] => {
const result: Point[] = [];
@@ -121,8 +117,11 @@ onMounted(() => {
};
// Draw figure
- const drawFigure = (points: Point[], faces: [number, number, number, number][]) => {
- ctx.clearRect(0, 0, canvas.value.width, canvas.value.height);
+ const drawFigure = (
+ points: Point[],
+ faces: [number, number, number, number][]
+ ) => {
+ ctx.clearRect(0, 0, sizeX, sizeY);
faces.forEach((face) => {
ctx.beginPath();
@@ -135,16 +134,13 @@ onMounted(() => {
});
};
- // Rotation animation all axis on the center of the canvas
+ // Rotation animation all axis in the center of the canvas
let angle = 0;
const animate = () => {
const matrix = multiply(
multiply(
- multiply(
- translate(canvas.value.width / 2, canvas.value.height / 2, 0),
- rotateX(angle)
- ),
+ multiply(translate(centerX, centerY, 0), rotateX(angle)),
rotateY(angle)
),
rotateZ(angle)
@@ -164,7 +160,5 @@ onMounted(() => {
-
+
diff --git a/src/components/form/range.vue b/src/components/form/range.vue
index d774eb5..bec2288 100644
--- a/src/components/form/range.vue
+++ b/src/components/form/range.vue
@@ -1,22 +1,28 @@
-