Compare commits

1 Commits

Author SHA1 Message Date
0546e38520 Merge pull request 'Update .gitea/workflows/deploy-dev.yaml' (#5) from main into dev
Some checks failed
Copy Files to Samba Share dev / Copy Files (push) Failing after 16s
Reviewed-on: #5
2024-08-10 11:41:01 +02:00
60 changed files with 69 additions and 16329 deletions

View File

@@ -1,16 +0,0 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.ts]
quote_type = single
[*.md]
max_line_length = off
trim_trailing_whitespace = false

View File

@@ -17,14 +17,6 @@ jobs:
apt-get update
apt-get install -y smbclient
- name: install dependencies
run: |
npm ci
- name: build application
run: |
npm run dev:deploy
- name: Copy
run: |
smbclient //192.168.129.245/arne -U "${{ secrets.SAMBA_USER }}" "${{ secrets.SAMBA_PASSWORD }}" -c 'prompt OFF; recurse ON; cd letsencrypt/config/www/cptarn/dev/; lcd dist/cpt-arn/browser/; mput *'
smbclient //192.168.129.245/arne/letsencrypt/config/www/dev -U "${{ secrets.SAMBA_USER }}" "${{ secrets.SAMBA_PASSWORD }}" -c "lcd \".\"; recurse; mput *"

View File

@@ -17,14 +17,7 @@ jobs:
apt-get update
apt-get install -y smbclient
- name: install dependencies
run: |
npm ci
- name: build application
run: |
npm run prod:deploy
- name: Copy
run: |
smbclient //192.168.129.245/arne -U "${{ secrets.SAMBA_USER }}" "${{ secrets.SAMBA_PASSWORD }}" -c 'prompt OFF; recurse ON; cd letsencrypt/config/www/cptarn/; lcd dist/cpt-arn/browser/; mput *'
smbclient //192.168.129.245/arne -U "${{ secrets.SAMBA_USER }}" "${{ secrets.SAMBA_PASSWORD }}" -c "cd \"letsencrypt/config/www\"; lcd \".\"; prompt; recurse; mput *"

42
.gitignore vendored
View File

@@ -1,42 +0,0 @@
# See https://docs.github.com/get-started/getting-started-with-git/ignoring-files for more about ignoring files.
# Compiled output
/dist
/tmp
/out-tsc
/bazel-out
# Node
/node_modules
npm-debug.log
yarn-error.log
# IDEs and editors
.idea/
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# Miscellaneous
/.angular/cache
.sass-cache/
/connect.lock
/coverage
/libpeerconnection.log
testem.log
/typings
# System files
.DS_Store
Thumbs.db

View File

@@ -1,4 +0,0 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
"recommendations": ["angular.ng-template"]
}

20
.vscode/launch.json vendored
View File

@@ -1,20 +0,0 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "ng serve",
"type": "chrome",
"request": "launch",
"preLaunchTask": "npm: start",
"url": "http://localhost:4200/"
},
{
"name": "ng test",
"type": "chrome",
"request": "launch",
"preLaunchTask": "npm: test",
"url": "http://localhost:9876/debug.html"
}
]
}

42
.vscode/tasks.json vendored
View File

@@ -1,42 +0,0 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "start",
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "(.*?)"
},
"endsPattern": {
"regexp": "bundle generation complete"
}
}
}
},
{
"type": "npm",
"script": "test",
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "(.*?)"
},
"endsPattern": {
"regexp": "bundle generation complete"
}
}
}
}
]
}

View File

@@ -1,27 +1,3 @@
# CptArn
# CptArn-Website
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.1.4.
## Development server
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
## Build
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
Website for cptarn.com

View File

@@ -1,102 +0,0 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"CptArn": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:application",
"options": {
"outputPath": "dist/cpt-arn",
"index": "src/index.html",
"browser": "src/main.ts",
"polyfills": [
"zone.js"
],
"tsConfig": "tsconfig.app.json",
"inlineStyleLanguage": "scss",
"assets": [
{
"glob": "**/*",
"input": "public"
}
],
"styles": [
"src/styles.scss"
],
"scripts": []
},
"configurations": {
"production": {
"budgets": [
{
"type": "initial",
"maximumWarning": "500kB",
"maximumError": "1MB"
},
{
"type": "anyComponentStyle",
"maximumWarning": "2kB",
"maximumError": "4kB"
}
],
"outputHashing": "all"
},
"development": {
"optimization": false,
"extractLicenses": false,
"sourceMap": true
}
},
"defaultConfiguration": "production"
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"configurations": {
"production": {
"buildTarget": "CptArn:build:production"
},
"development": {
"buildTarget": "CptArn:build:development"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n"
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"polyfills": [
"zone.js",
"zone.js/testing"
],
"tsConfig": "tsconfig.spec.json",
"inlineStyleLanguage": "scss",
"assets": [
{
"glob": "**/*",
"input": "public"
}
],
"styles": [
"src/styles.scss"
],
"scripts": []
}
}
}
}
}
}

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -6,13 +6,68 @@
.st0{fill:#E94E1B;}
.st1{fill:#FFFFFF;}
</style>
<g>
<g>
<path class="st0" d="M158.2,325.9c-0.7,0-1.4-0.3-1.9-0.8c-1.1-1.1-1.2-2.8-0.1-3.9c1.4-1.4,2.6-3.1,3.7-5.1
c5.2-9.5,8.4-16.6,10.1-20.8c-5.3,0.8-14.2,2-22.3,2.7c-1.5,0.1-2.9-1-3-2.5c-0.1-1.5,1-2.9,2.6-3c12.4-1.1,26.6-3.3,26.7-3.3
c1-0.2,1.9,0.2,2.6,0.9c0.6,0.7,0.8,1.7,0.5,2.7c-0.1,0.4-3.2,9.7-12.1,26c-1.3,2.4-2.8,4.5-4.5,6.3
C159.7,325.6,158.9,325.9,158.2,325.9z"/>
</g>
<g>
<path d="M210,321.7c-2.3-0.8-4.9-1.2-7.6-1.2c-3.6,0-6.8,0.5-9.6,1.6c-2.7,1-5.1,2.5-7,4.2c-1.9,1.7-3.5,3.7-4.7,5.9
c-1.2,2.2-2,4.4-2.6,6.7c-0.5,2.2-0.8,4.5-0.8,6.6c0,3.3,0.6,6.2,1.8,8.9c1.2,2.6,2.8,4.9,4.8,6.7c2,1.8,4.4,3.3,7.1,4.2
c2.6,1,5.5,1.5,8.4,1.5c1.5,0,3-0.1,4.4-0.4c1.4-0.3,2.7-0.6,3.9-1.1c1.2-0.4,2.2-0.9,3.2-1.3c0.7-0.3,1-1.1,0.7-1.8l-1.1-2.6
c-0.1-0.4-0.4-0.6-0.8-0.8c-0.4-0.1-0.8-0.1-1.1,0c-0.8,0.4-1.7,0.8-2.7,1.1c-0.9,0.3-1.9,0.6-3,0.9c-1.1,0.2-2.2,0.3-3.4,0.3
c-2.3,0-4.5-0.4-6.4-1.2c-2-0.8-3.7-1.9-5.2-3.3c-1.5-1.4-2.6-3.1-3.4-5c-0.8-1.9-1.2-4.1-1.2-6.5c0-2.3,0.4-4.6,1.1-6.9
c0.7-2.3,1.8-4.4,3.4-6.2c1.5-1.8,3.4-3.3,5.8-4.4c2.4-1.1,5.3-1.7,8.7-1.6c2,0,3.9,0.4,5.6,1c1.8,0.6,3.3,1.5,4.6,2.4
c0.3,0.2,0.7,0.3,1.1,0.3c0.4-0.1,0.7-0.3,0.9-0.6l1.6-2.6c0.4-0.6,0.2-1.4-0.4-1.8C214.4,323.5,212.3,322.5,210,321.7z"/>
<path d="M246.3,340.6c-3.9-2.2-9.2-2.1-13.8,0.4c-0.7,0.4-1.3,0.8-1.9,1.2l0.1-1.1c0-0.4-0.1-0.8-0.4-1.1c-0.3-0.3-0.6-0.5-1-0.5
h-2.6c-0.7,0-1.3,0.5-1.4,1.2l-4.3,34.9c0,0.4,0.1,0.8,0.3,1.1c0.3,0.3,0.6,0.5,1.1,0.5h2.9c0.7,0,1.3-0.5,1.4-1.2l1.4-12.7
c0.4,0.4,0.9,0.7,1.4,1.1c2.1,1.4,4.5,2.1,7.1,2.1c2.9,0,5.6-0.7,8-2.1c2.3-1.4,4.2-3.3,5.6-5.6c1.4-2.3,2.1-4.9,2.1-7.7
c0-2.3-0.5-4.4-1.6-6.2C249.7,343.1,248.2,341.6,246.3,340.6z M236.7,361.2c-1.5,0-2.7-0.2-3.6-0.7c-0.9-0.5-1.7-1.1-2.2-1.9
c-0.6-0.8-1-1.6-1.2-2.4c-0.2-0.8-0.3-1.6-0.4-2l0.3-2.5c0.3-1.5,0.9-2.8,1.8-4c0.9-1.1,2-2,3.4-2.7c1.3-0.7,2.7-1,4.3-1
c1.5,0,2.7,0.3,3.9,1c1.1,0.6,2,1.5,2.6,2.6c0.6,1.1,1,2.4,1,3.8c0,1.7-0.4,3.3-1.3,4.8c-0.9,1.5-2.1,2.7-3.6,3.6
C240.2,360.8,238.5,361.2,236.7,361.2z"/>
<path d="M277.1,340.1h-5.8l1.1-9.1c0.1-0.4-0.1-0.8-0.3-1.1c-0.3-0.3-0.7-0.5-1.1-0.5H268c-0.7,0-1.3,0.5-1.4,1.2l-1.1,9.4h-3.9
c-0.7,0-1.3,0.5-1.4,1.2l-0.3,2.3c-0.1,0.4,0.1,0.8,0.3,1.1c0.3,0.3,0.7,0.5,1.1,0.5h3.5l-2.4,19.3c0,0.4,0.1,0.8,0.3,1.1
c0.3,0.3,0.6,0.5,1.1,0.5h2.9c0.7,0,1.3-0.5,1.4-1.2l2.4-19.6h6.2c0.7,0,1.3-0.5,1.4-1.2l0.3-2.3c0.1-0.4-0.1-0.8-0.3-1.1
C277.8,340.2,277.5,340.1,277.1,340.1z"/>
<path d="M308,319.8c-0.2-0.6-0.7-1-1.4-1h-0.2c-0.5,0-1,0.3-1.2,0.7l-23.8,44.5c-0.2,0.4-0.2,0.9,0,1.4c0.3,0.4,0.7,0.7,1.2,0.7h3
c0.5,0,1-0.3,1.2-0.7l7.1-13.4H311l3.7,13.1c0.2,0.6,0.7,1,1.4,1h3.4c0.4,0,0.9-0.2,1.1-0.5c0.3-0.3,0.4-0.8,0.2-1.2L308,319.8z
M309.4,346.4h-12.6l8.2-15.4L309.4,346.4z"/>
<path d="M347.3,339.1c-1.6,0-3.1,0.3-4.7,0.9c-1.6,0.6-3,1.5-4.3,2.6c0,0,0,0,0,0c0,0,0,0-0.1,0l0.1-1.4c0-0.4-0.1-0.8-0.4-1.1
c-0.3-0.3-0.6-0.5-1-0.5h-2.5c-0.7,0-1.3,0.5-1.4,1.2l-2.9,23.5c-0.1,0.4,0.1,0.8,0.3,1.1c0.3,0.3,0.6,0.5,1.1,0.5h2.9
c0.7,0,1.3-0.5,1.4-1.2l1.6-12.4c0.2-1.4,0.7-2.7,1.6-3.9c0.9-1.2,2-2.1,3.5-2.8c1.4-0.7,2.9-1,4.5-1c0.7,0,1.3-0.5,1.4-1.2
l0.4-2.8c0.1-0.4-0.1-0.8-0.3-1.1C348.1,339.3,347.7,339.1,347.3,339.1z"/>
<path d="M378,341.4c-1.5-1.6-3.7-2.3-6.5-2.3c-2.7,0-5.1,0.6-7.2,1.9c-0.5,0.3-1,0.6-1.5,1l0-0.8c0-0.4-0.1-0.7-0.4-1
c-0.3-0.3-0.6-0.4-1-0.4H359c-0.7,0-1.3,0.5-1.4,1.2l-2.9,23.5c-0.1,0.4,0.1,0.8,0.3,1.1c0.3,0.3,0.6,0.5,1.1,0.5h2.9
c0.7,0,1.3-0.5,1.4-1.2l1.6-12.6c0.2-1.5,0.7-2.9,1.5-4.1c0.8-1.2,1.8-2.1,3.1-2.8c1.2-0.7,2.5-1,4-1c1.4,0,2.4,0.3,3,1
c0.6,0.7,0.9,1.5,0.7,2.6l-2,16.4c0,0.4,0.1,0.8,0.3,1.1c0.3,0.3,0.6,0.5,1.1,0.5h2.9c0.7,0,1.3-0.5,1.4-1.2l2.1-17.1
C380.2,345.1,379.6,343,378,341.4z"/>
</g>
<g>
<path d="M149.6,293.7L149.6,293.7c-13.7-20.3-36.6-32.5-61.3-32.5c-40.5,0-73.5,32.5-73.5,72.3c0,39.9,33,72.4,73.5,72.4
s73.5-32.5,73.5-72.4C161.8,319.3,157.6,305.5,149.6,293.7z M145.8,298.1c4.7,7.4,7.9,15.5,9.3,24.1c-8.9,8-25.3,7.7-59.8,7.2
l-5.8-0.1c-34-0.5-49.1,5.2-55.8,10.3c0.2-31.5,17.5-34.8,29.2-37c7.2-1.4,10.2-4.4,12.9-7c3.2-3.1,6.2-6.1,17.3-7
c12.7-1,19.9,2.5,26.4,5.5c4.2,2,8.1,3.8,12.8,4.3C135.3,298.7,139.9,298.6,145.8,298.1z M88.3,400.4c-37.4,0-67.9-30-67.9-66.8
c0-36.8,30.4-66.8,67.9-66.8c21.2,0,40.9,9.7,53.8,26.1c-4,0.2-7.1,0.2-9.2,0c-3.7-0.4-7-1.9-10.9-3.8c-6.7-3.2-15.1-7.2-29.3-6.1
c-13.2,1-17.2,5.1-20.8,8.6c-2.5,2.5-4.6,4.5-10,5.5c-12.8,2.4-36.6,7-33.5,50.6c0.1,1.4,1.3,2.6,2.8,2.6c0,0,0,0,0,0
c1.5,0,2.7-1.1,2.8-2.6c0-0.1,3.5-13.6,55.5-12.9l5.8,0.1c32.8,0.5,50,0.7,60.7-6.4c0.1,1.6,0.2,3.3,0.2,5
C156.2,370.4,125.7,400.4,88.3,400.4z"/>
<path d="M85,341.2H64.5c-5.3,0-9.7,4.4-9.7,9.7v6c0,5.3,4.4,9.7,9.7,9.7H85c5.3,0,9.7-4.4,9.7-9.7v-6
C94.7,345.6,90.4,341.2,85,341.2z M89.1,356.9c0,2.2-1.8,4.1-4.1,4.1H64.5c-2.2,0-4.1-1.8-4.1-4.1v-6c0-2.2,1.8-4.1,4.1-4.1H85
c2.2,0,4.1,1.8,4.1,4.1V356.9z"/>
<path d="M128.2,341.2h-20.7c-5.4,0-9.7,4.4-9.7,9.7v5.9c0,5.4,4.4,9.7,9.7,9.7h20.7c5.4,0,9.7-4.4,9.7-9.7V351
C137.9,345.6,133.5,341.2,128.2,341.2z M132.3,356.9c0,2.3-1.8,4.1-4.1,4.1h-20.7c-2.3,0-4.1-1.8-4.1-4.1V351
c0-2.3,1.8-4.1,4.1-4.1h20.7c2.3,0,4.1,1.8,4.1,4.1V356.9z"/>
</g>
</g>
<g>
<g>
<path class="st0" d="M166.8,55.3c-0.5-0.5-1.2-0.8-1.9-0.7c-0.1,0-9.7,1.6-19.5,2.6c-0.2,0-0.3,0.1-0.5,0.2
c4.8,7.8,8,16.7,9.3,26.1c1.6-2.3,3.3-4.8,3.5-5.2c6.9-13.2,9.4-20.7,9.5-21C167.4,56.6,167.3,55.9,166.8,55.3z"/>
</g>
<g class="st1">
<g>
<path d="M207.5,82.1c-2.5-0.9-5.3-1.4-8.5-1.4c-3.5,0-6.6,0.5-9.3,1.5c-2.7,1-5.1,2.4-7,4.1c-1.9,1.7-3.5,3.8-4.7,6
c-1.2,2.2-2.1,4.6-2.7,7c-0.6,2.4-0.9,4.9-0.9,7.3c0,3.7,0.7,7,2,9.8c1.3,2.8,3.1,5.1,5.3,6.9c2.2,1.8,4.6,3.1,7.3,3.9
c2.6,0.8,5.3,1.3,8,1.3c1.8,0,3.6-0.2,5.2-0.5c1.6-0.3,3-0.8,4.3-1.3c1.3-0.5,2.2-1,3-1.4c0.6-0.3,0.9-1.1,0.6-1.7l-1.9-5.4
@@ -44,6 +99,9 @@
c0.5,0.5,0.6,1.3,0.5,2.2l-2,16.7c0,0.4,0.1,0.8,0.3,1.1c0.3,0.3,0.7,0.5,1.1,0.5h5.7c0.7,0,1.3-0.5,1.4-1.2l2.3-18.7
C386.1,105.2,385.3,103,383.7,101.3z"/>
</g>
<g>
<circle cx="85.5" cy="94.9" r="70.7"/>
</g>
<g>
<path class="st1" d="M82.2,126.2H61.7c-5,0-9.1-4.1-9.1-9.1v-6c0-5,4.1-9.1,9.1-9.1h20.5c5,0,9.1,4.1,9.1,9.1v6
C91.3,122.1,87.2,126.2,82.2,126.2z M61.7,106.5c-2.6,0-4.6,2.1-4.6,4.6v6c0,2.6,2.1,4.6,4.6,4.6h20.5c2.6,0,4.6-2.1,4.6-4.6v-6

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -5,8 +5,6 @@
<meta name="description" content="CptArn Freelance dreative thinker with a solution focus. For all projects involving prototyping, coding or automation in a wide array of situations (IT projects, factory/home automation, new products).">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script data-goatcounter="https://cptarn.goatcounter.com/count"
async src="//gc.zgo.at/count.js"></script>
<title>CptArn</title>
<style>
* {
@@ -64,11 +62,12 @@
<div>
Creative thinker with a solution focus. For all projects involving prototyping, coding or automation in a wide array of situations (IT projects, factory/home automation, new products).
</div>
<div class="contact-details">
<h2>Contact</h2>
<div>
For all your projects, questions or ideas, feel free to email me at <a href="mailto:arne@cptarn.com">arne@cptarn.com</a>
</div>
</div>
</div>
@@ -80,4 +79,4 @@
<script>
document.getElementById("footer-text").innerHTML = 'CptArn - ' + (new Date()).getFullYear();
</script>
</html>
</html>

14995
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,41 +0,0 @@
{
"name": "cpt-arn",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test",
"dev:deploy": "ng build --configuration=production --base-href /dev/ --deploy-url /dev/ && npx gzipper compress ./dist",
"prod:deploy": "ng build --configuration=production --base-href / --deploy-url / && npx gzipper compress ./dist"
},
"private": true,
"dependencies": {
"@angular/animations": "^18.1.0",
"@angular/common": "^18.1.0",
"@angular/compiler": "^18.1.0",
"@angular/core": "^18.1.0",
"@angular/forms": "^18.1.0",
"@angular/platform-browser": "^18.1.0",
"@angular/platform-browser-dynamic": "^18.1.0",
"@angular/router": "^18.1.0",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "~0.14.3"
},
"devDependencies": {
"@angular-devkit/build-angular": "^18.1.4",
"@angular/cli": "^18.1.4",
"@angular/compiler-cli": "^18.1.0",
"@types/jasmine": "~5.1.0",
"jasmine-core": "~5.1.0",
"gzipper": "^7.2.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"typescript": "~5.5.2"
}
}

View File

@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 529.14 305.26">
<defs>
<style>
.cls-2 {
fill: #fff;
}
</style>
</defs>
<path class="cls-2" d="M213.92,271.49h-59.1c-14.55,0-26.39-11.84-26.39-26.39v-17.35c0-14.55,11.84-26.39,26.39-26.39h59.1c14.55,0,26.39,11.84,26.39,26.39v17.35c0,14.55-11.84,26.39-26.39,26.39ZM154.82,214.37c-7.38,0-13.38,6-13.38,13.38v17.35c0,7.38,6,13.38,13.38,13.38h59.1c7.38,0,13.38-6,13.38-13.38v-17.35c0-7.38-6-13.38-13.38-13.38h-59.1Z"/>
<path class="cls-2" d="M338.61,271.49h-59.91c-14.61,0-26.49-11.89-26.49-26.49v-17.14c0-14.61,11.89-26.49,26.49-26.49h59.91c14.61,0,26.49,11.89,26.49,26.49v17.14c0,14.61-11.89,26.49-26.49,26.49ZM278.7,214.37c-7.43,0-13.49,6.05-13.49,13.49v17.14c0,7.43,6.05,13.49,13.49,13.49h59.91c7.43,0,13.49-6.05,13.49-13.49v-17.14c0-7.43-6.05-13.49-13.49-13.49h-59.91Z"/>
<path class="cls-2" d="M58.38,228.43c-.09,0-.18,0-.27,0-3.31-.15-5.99-2.62-6.22-5.92-8.09-116.77,45-136.98,95.4-146.76,16.3-3.16,22.56-9.42,29.82-16.66,10.21-10.19,21.77-21.74,59.17-24.76,40.5-3.26,64.44,8.31,83.69,17.61,11.25,5.44,20.97,10.14,32.02,11.19,31.36,3.02,117.68-10.76,118.55-10.9,2.23-.36,4.49.47,5.97,2.19s1.95,4.08,1.26,6.23c-.37,1.14-9.24,28.35-34.9,76.06-26.45,49.18-73.54,48.52-199.38,46.7l-16.79-.24c-153.58-2.2-161.79,39.22-161.86,39.64-.5,3.18-3.26,5.62-6.45,5.62ZM250.03,46.78c-4.02,0-8.25.17-12.71.53-32.63,2.64-41.56,11.55-51.02,20.99-8.03,8.02-16.33,16.31-36.54,20.23-34.76,6.74-86.21,16.72-85.66,113.4,17.47-15.17,59.88-33.06,162.77-31.76l16.8.24c120.11,1.71,165.03,2.36,187.74-39.86,16.13-30,25.55-51.92,30.22-63.78-24.77,3.68-84.5,11.85-110.89,9.33-13.37-1.29-24.58-6.7-36.44-12.43-16.5-7.98-34.93-16.88-64.28-16.88Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1235.74 581.51">
<defs>
<style>
.cls-1 {
fill: #f15a29;
}
.cls-2 {
fill: #fff;
}
</style>
</defs>
<path class="cls-1" d="M512.51,172.65c-1.33-1.55-8.08-.26-10.07.08-.28.04-28.06,4.49-56.36,7.48-.5.05-.94.27-1.39.44,13.78,22.56,23.09,48.13,26.82,75.47,4.67-6.53,9.56-13.96,10.13-15.05,19.97-38.22,28.31-57.23,28.6-58.13.63-1.95,3.59-8.75,2.26-10.29Z"/>
<path class="cls-2" d="M263.31,379.47h-59.1c-14.55,0-26.39-11.84-26.39-26.39v-17.35c0-14.55,11.84-26.39,26.39-26.39h59.1c14.55,0,26.39,11.84,26.39,26.39v17.35c0,14.55-11.84,26.39-26.39,26.39ZM204.22,322.35c-7.38,0-13.38,6-13.38,13.38v17.35c0,7.38,6,13.38,13.38,13.38h59.1c7.38,0,13.38-6,13.38-13.38v-17.35c0-7.38-6-13.38-13.38-13.38h-59.1Z"/>
<path class="cls-2" d="M388.01,379.47h-59.91c-14.61,0-26.49-11.89-26.49-26.49v-17.14c0-14.61,11.89-26.49,26.49-26.49h59.91c14.61,0,26.49,11.89,26.49,26.49v17.14c0,14.61-11.89,26.49-26.49,26.49ZM328.09,322.35c-7.43,0-13.49,6.05-13.49,13.49v17.14c0,7.43,6.05,13.49,13.49,13.49h59.91c7.43,0,13.49-6.05,13.49-13.49v-17.14c0-7.43-6.05-13.49-13.49-13.49h-59.91Z"/>
<path class="cls-2" d="M107.78,336.42c-.09,0-.18,0-.27,0-3.31-.15-5.99-2.62-6.22-5.92-8.09-116.77,45-136.98,95.4-146.76,16.3-3.16,22.56-9.42,29.82-16.66,10.21-10.19,21.77-21.74,59.17-24.76,40.5-3.26,64.44,8.31,83.69,17.61,11.25,5.44,20.97,10.14,32.02,11.19,31.36,3.02,117.68-10.76,118.55-10.9,2.23-.36,4.49.47,5.97,2.19s1.95,4.08,1.26,6.23c-.37,1.14-9.24,28.35-34.9,76.06-26.45,49.18-73.54,48.52-199.38,46.7l-16.79-.24c-153.58-2.2-161.79,39.22-161.86,39.64-.5,3.18-3.26,5.62-6.45,5.62ZM299.42,154.76c-4.02,0-8.25.17-12.71.53-32.63,2.64-41.56,11.55-51.02,20.99-8.03,8.02-16.33,16.31-36.54,20.23-34.76,6.74-86.21,16.72-85.66,113.4,17.47-15.17,59.88-33.06,162.77-31.76l16.8.24c120.11,1.71,165.03,2.36,187.74-39.86,16.13-30,25.55-51.92,30.22-63.78-24.77,3.68-84.5,11.85-110.89,9.33-13.37-1.29-24.58-6.7-36.44-12.43-16.5-7.98-34.93-16.88-64.28-16.88Z"/>
<g>
<path class="cls-2" d="M632.39,239.31c-6.43-2.56-14.11-3.8-22.79-3.66-9.72,0-19,1.88-27.57,5.58-8.51,3.68-16.27,8.75-23.05,15.07-6.77,6.32-12.46,13.77-16.9,22.14-4.45,8.39-7.42,17.47-8.84,27.02-1.29,9.04-1.06,17.86.69,26.22,1.76,8.41,5,16.01,9.64,22.6,4.67,6.65,10.77,11.98,18.13,15.85,7.36,3.88,15.94,5.85,25.48,5.85s17.48-1.35,24.71-4.02c7.17-2.65,14.01-6.41,20.34-11.19.52-.39.87-.98.96-1.62l2.07-13.76c.16-1.04-.36-2.07-1.28-2.57-.93-.5-2.07-.37-2.85.33-5.7,5.09-12.18,9.29-19.25,12.5-6.98,3.16-14.93,4.7-23.75,4.58-7.08,0-13.37-1.48-18.68-4.4-5.33-2.93-9.73-6.97-13.07-12.01-3.38-5.1-5.73-10.95-6.98-17.38-1.26-6.47-1.35-13.28-.27-20.24,1.2-7.59,3.62-14.78,7.18-21.35,3.56-6.59,8.07-12.5,13.38-17.57,5.29-5.05,11.29-9.04,17.83-11.86,6.51-2.8,13.56-4.23,21.01-4.23,7.71-.11,14.72,1.29,20.74,4.18,6,2.88,11.07,7.15,15.08,12.69.59.82,1.61,1.2,2.6.97.98-.23,1.73-1.03,1.89-2.03l2.26-13.76c.13-.82-.14-1.65-.74-2.22-5.49-5.22-11.53-9.17-17.95-11.73Z"/>
<path class="cls-2" d="M744.59,287.53c-5.83-4.54-13.13-6.84-21.7-6.84-6.28,0-12.11,1.36-17.35,4.05-4.94,2.53-9.33,5.93-13.05,10.09l1.58-9.33c.12-.73-.08-1.47-.56-2.03-.47-.56-1.17-.89-1.91-.89h-9.42c-1.22,0-2.25.87-2.46,2.07l-22.24,128.17c-.13.73.08,1.49.57,2.05.48.55,1.17.87,1.9.87.02,0,.03,0,.05,0l9.99-.19c1.2-.02,2.22-.9,2.42-2.08l9.12-53.84c.11.22.22.44.33.65,2.45,4.77,5.91,8.64,10.28,11.5,4.42,2.9,9.82,4.37,16.07,4.37,8.46,0,16.4-2.15,23.6-6.38,7.15-4.2,13.19-9.97,17.97-17.17,4.78-7.19,7.79-15.22,8.97-23.84,1.18-8.39.57-16.28-1.8-23.47-2.41-7.29-6.56-13.27-12.34-17.78ZM709.16,297.61c3.73-1.78,7.64-2.68,11.65-2.68,5.79,0,10.59,1.5,14.27,4.44,3.73,3,6.41,7.03,7.94,11.99h0c1.57,5.07,1.89,10.68.95,16.74-.82,6.23-3.03,11.99-6.55,17.1-3.54,5.14-7.94,9.26-13.06,12.27-5.04,2.95-10.59,4.39-16.48,4.28-3.92-.11-7.34-1.06-10.15-2.82-2.85-1.79-5.24-4.27-7.1-7.37-1.9-3.17-3.19-6.74-3.82-10.62-.63-3.84-.67-7.82-.14-11.8l.29-1.74c.77-3.97,2.12-7.78,4.01-11.36,2.15-4.05,4.8-7.73,7.88-10.93,3.04-3.16,6.51-5.68,10.3-7.49Z"/>
<path class="cls-2" d="M822.41,294.77l1.7-9.24c.13-.73-.06-1.48-.54-2.05s-1.18-.9-1.92-.9h-11.1l4.7-27.23c.12-.73-.08-1.47-.55-2.04-.47-.56-1.17-.89-1.91-.89h-9.8c-1.22,0-2.26.88-2.46,2.08l-4.75,28.08h-11.25c-1.21,0-2.24.86-2.46,2.05l-1.7,9.24c-.13.73.06,1.48.54,2.05s1.18.9,1.92.9h10.54l-12.62,74.55c-.12.73.08,1.47.56,2.03.47.56,1.17.89,1.91.89h9.42c1.22,0,2.26-.88,2.46-2.07l13.01-75.39h11.86c1.21,0,2.24-.86,2.46-2.05Z"/>
<path class="cls-2" d="M903.81,233.98c-.24-.99-1.06-1.74-2.07-1.89-1-.15-2.01.33-2.52,1.21l-80.29,137.22c-.45.77-.46,1.73-.01,2.51.45.78,1.27,1.26,2.17,1.26h11.69c.9,0,1.72-.48,2.17-1.26l24.62-43.04h51.54l9.71,42.35c.26,1.14,1.27,1.94,2.44,1.94h11.12c.77,0,1.49-.35,1.96-.95.47-.6.65-1.39.47-2.13l-32.99-137.22ZM896.59,265.51l11.3,49.68h-39.67l28.37-49.68Z"/>
<path class="cls-2" d="M1014.23,282.31c-2.5-1.07-5.27-1.62-8.18-1.62h0c-5.88-.12-11.2,1.81-15.75,5.8-.43.37-.84.76-1.26,1.15l.37-2.14c.13-.73-.07-1.47-.55-2.04-.47-.56-1.17-.89-1.91-.89h-9.8c-1.22,0-2.25.87-2.46,2.07l-15.08,86.7c-.13.73.07,1.47.55,2.04.47.56,1.17.89,1.91.89h9.8c1.22,0,2.25-.87,2.46-2.07l9.71-55.83c.79-3.09,1.81-6.15,3.05-9.13,1.54-3.72,3.67-6.81,6.33-9.18,2.48-2.22,5.54-3.23,9.36-3.13,1.63,0,3.12.3,4.42.9,1.47.68,2.9,1.54,4.26,2.56,1.06.79,2.55.63,3.4-.38l6.6-7.73c.89-1.04.78-2.6-.26-3.5-2.2-1.92-4.54-3.43-6.97-4.47Z"/>
<path class="cls-2" d="M1108.11,298.58c-1.38-5.25-4.03-9.58-7.86-12.86-3.91-3.34-9.31-5.03-16.04-5.03-7.15,0-13.5,1.89-18.86,5.63-2.28,1.59-4.38,3.42-6.29,5.48l1.04-6.32c.12-.72-.09-1.46-.56-2.02-.48-.56-1.17-.88-1.91-.88h-9.8c-1.22,0-2.25.87-2.46,2.07l-15.08,86.7c-.13.73.07,1.47.55,2.04.47.56,1.17.89,1.91.89h9.8c1.21,0,2.25-.87,2.46-2.06l9.62-53.96c.69-4.37,2.29-8.36,4.76-11.86,2.47-3.5,5.64-6.32,9.43-8.39,3.76-2.05,7.92-3.09,12.37-3.09,3.98,0,6.96.89,8.86,2.64,2,1.85,3.27,4.24,3.86,7.31.63,3.29.72,6.91.26,10.76l-9.6,55.73c-.12.73.08,1.47.55,2.04.48.56,1.17.89,1.91.89h9.42c1.21,0,2.25-.87,2.46-2.07l9.99-56.92s.01-.07.02-.1c.79-5.95.52-11.54-.81-16.61Z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.0 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 62 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 83 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 83 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 153 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 559 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

1
sinia2/Sinia Submodule

Submodule sinia2/Sinia added at b566634be9

View File

@@ -1,6 +0,0 @@
<div class="wrapper">
<app-hero></app-hero>
<app-header></app-header>
<app-services id="about"></app-services>
<app-footer id="contact"></app-footer>
</div>

View File

@@ -1,14 +0,0 @@
@use "../variables.scss" as variables;
.wrapper {
max-width: 50rem;
padding: 0 1rem;
margin: 0 auto;
box-sizing: content-box;
}
@media screen and (max-width: variables.$breakpoint) {
.wrapper {
padding: 0 3rem;
}
}

View File

@@ -1,29 +0,0 @@
import { TestBed } from '@angular/core/testing';
import { AppComponent } from './app.component';
describe('AppComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [AppComponent],
}).compileComponents();
});
it('should create the app', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.componentInstance;
expect(app).toBeTruthy();
});
it(`should have the 'CptArn' title`, () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.componentInstance;
expect(app.title).toEqual('CptArn');
});
it('should render title', () => {
const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges();
const compiled = fixture.nativeElement as HTMLElement;
expect(compiled.querySelector('h1')?.textContent).toContain('Hello, CptArn');
});
});

View File

@@ -1,16 +0,0 @@
import { Component } from '@angular/core';
import { HeroComponent } from "./hero/hero.component";
import { HeaderComponent } from "./header/header.component";
import { FooterComponent } from "./footer/footer.component";
import { ServicesComponent } from "./services/services.component";
@Component({
selector: 'app-root',
standalone: true,
imports: [HeroComponent, HeaderComponent, FooterComponent, ServicesComponent],
templateUrl: './app.component.html',
styleUrl: './app.component.scss'
})
export class AppComponent {
title = 'CptArn';
}

View File

@@ -1,8 +0,0 @@
import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
import { provideRouter } from '@angular/router';
import { routes } from './app.routes';
export const appConfig: ApplicationConfig = {
providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes)]
};

View File

@@ -1,4 +0,0 @@
import { Routes } from '@angular/router';
export const routes: Routes = [
];

View File

@@ -1,15 +0,0 @@
<div class="contact">
<div>
<h2>Contact me</h2>
<p>If youre ready to bring your ideas to life, feel free to reach out. Im here to help make your vision a reality with practical, innovative solutions—lets connect and get started!</p>
</div>
<div>
<p>Arne Vlaeminck</p>
<a href="mailto:arne@cptarn.com">arne&#64;cptarn.com</a>
<a href="https://cptarn.com/">cptarn.com</a>
<p>BE 0800 396 191</p>
</div>
</div>
<span class="copyright">2023 - {{currentYear}} copyright CptArn BV</span>

View File

@@ -1,57 +0,0 @@
@use "../../variables.scss" as variables;
:host {
font-weight: 400;
color: #ffffff;
padding-bottom: 5rem;
position: relative;
top: 2rem;
}
h2 {
font-family: "Jost";
font-style: italic;
font-weight: 500;
}
.contact {
display: flex;
justify-content: center;
align-items: center;
gap: 15%;
> div {
display: flex;
flex-direction: column;
gap: 0.75rem;
p {
margin: 0;
}
}
}
.copyright {
width: 100%;
display: inline-block;
text-align: center;
margin-top: 10rem;
color: #696969;
}
a {
color: #ffffff;
text-decoration: none;;
}
@media screen and (max-width: variables.$breakpoint) {
.contact {
flex-direction: column;
gap: 2rem;
align-items: start;
}
.copyright {
margin-top: 5rem;
}
}

View File

@@ -1,23 +0,0 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FooterComponent } from './footer.component';
describe('FooterComponent', () => {
let component: FooterComponent;
let fixture: ComponentFixture<FooterComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [FooterComponent]
})
.compileComponents();
fixture = TestBed.createComponent(FooterComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -1,12 +0,0 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-footer',
standalone: true,
imports: [],
templateUrl: './footer.component.html',
styleUrl: './footer.component.scss'
})
export class FooterComponent {
public currentYear: number = new Date().getUTCFullYear();
}

View File

@@ -1,5 +0,0 @@
<img alt="logo" src="assets/CPTARN_logo-name_White.svg" />
<div class="menu">
<a href="#about">about</a>
<a href="#contact">contact</a>
</div>

View File

@@ -1,44 +0,0 @@
@use "../../variables.scss";
:host {
border-bottom: 2px solid #fff;
width: 100%;
display: flex;
justify-content: space-between;
padding: 1rem 0;
}
img {
max-height: 5rem;
}
.menu {
font-style: italic;
display: flex;
gap: 3rem;
a {
color: #fff;
text-decoration: none;
align-content: center;
font-family: "Jost";
font-size: 2rem;
}
}
@media screen and (max-width: variables.$breakpoint) {
img {
display: none;
}
:host {
border-top: 2px solid #fff;
}
.menu {
justify-content: space-between;
width: 100%;
padding: 0 1rem;
}
}

View File

@@ -1,23 +0,0 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { HeaderComponent } from './header.component';
describe('HeaderComponent', () => {
let component: HeaderComponent;
let fixture: ComponentFixture<HeaderComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [HeaderComponent]
})
.compileComponents();
fixture = TestBed.createComponent(HeaderComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -1,12 +0,0 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-header',
standalone: true,
imports: [],
templateUrl: './header.component.html',
styleUrl: './header.component.scss'
})
export class HeaderComponent {
}

View File

@@ -1,4 +0,0 @@
<div class="mobile">
<img alt="logo" src="assets/CPTARN_logo-figure_White.svg"/>
</div>
<p class="hero-text">NO LIMITS, JUST <span class="subSlogan">{{subSlogan}}</span></p>

View File

@@ -1,50 +0,0 @@
@use "../../variables.scss" as variables;
:host {
width: 100%;
height: 50rem;
display: inline-block;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.hero-text {
text-transform: uppercase;
font-size: 3.8rem;
font-weight: bold;
color: white;
position: relative;
text-align: center;
}
.subSlogan {
display: inline-block;
text-align: start;
}
@media screen and (max-width: variables.$breakpoint) {
:host {
height: fit-content;
}
.hero-text {
font-size: 2rem;
font-weight: 600;
}
div {
display: flex;
width: 100%;
border-bottom: 2px solid #fff;
padding: 1rem 0;
justify-content: center;
}
img {
max-width: 50%;
margin: 0 auto;
padding: 1rem 0;
}
}

View File

@@ -1,23 +0,0 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { HeroComponent } from './hero.component';
describe('HeroComponent', () => {
let component: HeroComponent;
let fixture: ComponentFixture<HeroComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [HeroComponent]
})
.compileComponents();
fixture = TestBed.createComponent(HeroComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -1,24 +0,0 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-hero',
standalone: true,
imports: [],
templateUrl: './hero.component.html',
styleUrl: './hero.component.scss'
})
export class HeroComponent {
public subSlogan: string = 'results';
public slogans: string[] = [
'deliverables',
'performance',
'results',
'efficiency',
'achievements',
'optimizations',
'success',
]
constructor() {}
}

View File

@@ -1,35 +0,0 @@
<div class="left">
<div class="text">
<h2>Creative thinker with a solution focus.</h2>
<p>Welcome to my creative workspace! Im a solution-driven freelancer with a passion for blending innovative thinking with technical know-how to bring unique ideas to life. Whether youre looking to build a prototype, develop custom code, or create a tailored automation system, Im here to help turn your vision into a reality. My approach combines hands-on experience with a fresh perspective, ensuring that every project isnt just functional, but forwardthinking and impactful.</p>
<a href="mailto:contact@cptarn.com" class="web">Contact</a>
</div>
<img class="arne" alt="Drawing of Arne" src="assets/Website_Arne.svg" />
<a href="mailto:contact@cptarn.com" class="mobile">Contact</a>
</div>
<div class="right">
<div class="text">
<h2>Collaboration is at the heart of my work.</h2>
<p>I strive to understand not only the technical requirements but also the goals and
challenges unique to each project. By working closely with my clients, I ensure
that each solution is designed with both practicality and creativity in mind. No
matter the scope or complexity, Im committed to providing efficient, reliable
solutions that help you innovate, save time, and stay ahead. Let's work together
to make your next project a success!</p>
</div>
<img src="assets/Website_Topview_Collab.svg" alt="Drawing of collaboration" />
</div>
<div class="full">
<div class="text">
<h2>For all projects involving prototyping, coding or automation</h2>
<p>With a background in IT, engineering, and automation, I offer a versatile skill set to
tackle projects across different industries. From streamlining factory processes to
designing smart home systems and creating user-friendly software solutions, I tailor
my work to meet the specific needs of each client. My technical expertise spans
from prototyping to coding and complex automation, allowing me to support
projects from the concept phase right through to completion. I believe that the
right technology can enhance productivity and improve daily workflows, whether in
a corporate environment or your own home.</p>
</div>
<img src="assets/Website_Desk.svg" alt="Drawing of a desk"/>
</div>

View File

@@ -1,105 +0,0 @@
@use "../../variables.scss" as variables;
$margin: 8rem;
:host {
color: #fff;
display: flex;
flex-direction: column;
gap: 2rem;
> div {
margin-top: $margin;
}
}
h2 {
font-weight: 500;
font-style: italic;
font-family: "Jost";
}
.left, .right {
display: flex;
justify-content: center;
gap: 5%;
&:first-child {
margin-bottom: -8rem;
img {
position: relative;
top: -7rem;
}
}
.text {
max-width: 50%;
}
img {
max-width: 50%;
}
}
.right {
flex-direction: row-reverse;
text-align: end;
}
.full {
img {
max-width: 100%;
margin-top: 2rem;
}
}
a {
color: #fff;
text-decoration: none;
background-color: rgb(207, 66, 22);// var(--accent-color) not enough contrast
border-radius: 4rem;
padding: 0.5rem 1rem;
margin-top: 2rem;
position: relative;
top: 1rem;
text-transform: uppercase;
width: fit-content;
}
@media screen and (max-width: variables.$breakpoint) {
.left, .right {
flex-direction: column;
&:first-child {
margin-bottom: 3rem;
img {
position: relative;
top: 0rem;
}
}
.text, img {
max-width: 100%;
}
.arne {
max-width: 70%;
margin: 0 auto;
}
img {
margin-top: 2rem;
}
}
.right {
text-align: start;
}
:host {
> div {
margin-top: 0;
}
}
.mobile {
margin: 0 auto;
font-size: 1.4rem;
}
}

View File

@@ -1,23 +0,0 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ServicesComponent } from './services.component';
describe('ServicesComponent', () => {
let component: ServicesComponent;
let fixture: ComponentFixture<ServicesComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [ServicesComponent]
})
.compileComponents();
fixture = TestBed.createComponent(ServicesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -1,12 +0,0 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-services',
standalone: true,
imports: [],
templateUrl: './services.component.html',
styleUrl: './services.component.scss'
})
export class ServicesComponent {
}

View File

@@ -1,20 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CptArn</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="CptArn Freelance creative thinker with a solution focus. For all projects involving prototyping, coding or automation in a wide array of situations (IT projects, factory/home automation, new products).">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<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=Figtree:ital,wght@0,300..900;1,300..900&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&family=Jost:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
<script data-goatcounter="https://cptarn.goatcounter.com/count"
async src="//gc.zgo.at/count.js"></script>
</head>
<body>
<app-root></app-root>
</body>
</html>

View File

@@ -1,6 +0,0 @@
import { bootstrapApplication } from '@angular/platform-browser';
import { appConfig } from './app/app.config';
import { AppComponent } from './app/app.component';
bootstrapApplication(AppComponent, appConfig)
.catch((err) => console.error(err));

View File

@@ -1,41 +0,0 @@
@use "./variables.scss" as variables;
/* You can add global styles to this file, and also import other style files */
body {
width: 100%;
height: 100%;
margin: 0;
overflow-x: hidden;
}
body {
font-family: "Figtree", serif;
font-optical-sizing: auto;
font-weight: normal;
font-style: normal;
background: linear-gradient(180deg, #E94E1B 0%, #E94E1B 10%, #2B2B2B 45%, #2B2B2B 63.56%, #000000 90%, #000000 100%);
--accent-color: #E94E1B;
}
html {
background-color: #000000;
}
.mobile {
display: none;
}
.web {
display: inherit;
}
@media screen and (max-width: variables.$breakpoint) {
.web {
display: none;
}
.mobile {
display: inherit;
}
}

View File

@@ -1 +0,0 @@
$breakpoint: 820px;

View File

@@ -1,15 +0,0 @@
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": []
},
"files": [
"src/main.ts"
],
"include": [
"src/**/*.d.ts"
]
}

View File

@@ -1,32 +0,0 @@
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"strict": true,
"noImplicitOverride": true,
"noPropertyAccessFromIndexSignature": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"skipLibCheck": true,
"esModuleInterop": true,
"sourceMap": true,
"declaration": false,
"experimentalDecorators": true,
"moduleResolution": "bundler",
"importHelpers": true,
"target": "ES2022",
"module": "ES2022",
"lib": [
"ES2022",
"dom"
]
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false,
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true
}
}

View File

@@ -1,15 +0,0 @@
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": [
"jasmine"
]
},
"include": [
"src/**/*.spec.ts",
"src/**/*.d.ts"
]
}