26 Commits

Author SHA1 Message Date
ef4b2653a8 1.15.17
All checks were successful
Build and Deploy / deploy (push) Successful in 42s
2026-02-26 21:47:22 +00:00
3237fcfa7c Add rich social media metadata (Open Graph, Twitter Cards) 2026-02-26 21:47:14 +00:00
fcef986d2b Update docker-compose name and service aliases, adjust deploy workflow
All checks were successful
Build and Deploy / deploy (push) Successful in 7s
2026-02-22 19:46:03 +00:00
4c6f4d5865 Restore workflow trigger and name
Some checks failed
Build and Deploy / deploy (push) Failing after 1s
2026-02-22 16:40:35 +00:00
3052fed279 Update deploy workflow: set working directory and simplify 2026-02-22 16:33:13 +00:00
fa983c6777 1.15.16
All checks were successful
Deploy to Production / deploy (push) Successful in 19s
2026-02-22 16:20:56 +00:00
2a1ddf92aa Remove direct host port binding (use NPM) 2026-02-22 16:20:17 +00:00
a5b93c1198 1.15.15
All checks were successful
Deploy to Production / deploy (push) Successful in 17s
2026-02-22 15:45:08 +00:00
be014fc3c8 Fix nginx config: remove volume mount, add IPv6 listen, catch-all server_name 2026-02-22 15:45:08 +00:00
269db48aec 1.15.14
Some checks failed
Deploy to Production / deploy (push) Failing after 17s
2026-02-22 15:41:43 +00:00
fe72508717 Restore correct docker-compose.yml (remove piggy-bank, fix service name) 2026-02-22 15:41:42 +00:00
70ba5ebdb3 1.15.13
All checks were successful
Deploy to Production / deploy (push) Successful in 17s
2026-02-22 15:37:51 +00:00
5aaa8c7357 1.15.12
All checks were successful
Deploy to Production / deploy (push) Successful in 17s
2026-02-22 15:37:00 +00:00
bf7cc4cb1d Add expose 80 to docker-compose 2026-02-22 15:37:00 +00:00
1aff1a0857 1.15.11
Some checks failed
Deploy to Production / deploy (push) Failing after 18s
2026-02-22 15:31:51 +00:00
a59aeb93e6 Restore npm_public network in docker-compose.yml 2026-02-22 15:31:51 +00:00
8291c8f74c 1.15.10
Some checks failed
Deploy to Production / deploy (push) Failing after 24s
2026-02-22 15:28:20 +00:00
0f240596cc 1.15.9
All checks were successful
Deploy to Production / deploy (push) Successful in 24s
2026-02-21 23:24:44 +00:00
6fc3e1c057 Enhance vibration pattern on game win with error handling 2026-02-21 23:24:40 +00:00
d488531358 1.15.8
All checks were successful
Deploy to Production / deploy (push) Successful in 24s
2026-02-21 23:13:07 +00:00
e3d2b630e1 Remove overlay rectangle from share export 2026-02-21 23:13:06 +00:00
1392a9f3d5 1.15.7
All checks were successful
Deploy to Production / deploy (push) Successful in 25s
2026-02-21 23:04:08 +00:00
8ccf5de972 Fix SVG path precision in share export 2026-02-21 23:04:04 +00:00
ddf6a31f55 1.15.6
All checks were successful
Deploy to Production / deploy (push) Successful in 24s
2026-02-21 22:39:54 +00:00
62f35ec35e Fix camera UI gradient gap at bottom 2026-02-21 22:39:28 +00:00
cdaa10c282 Consolidate assets and remove duplicate splash image 2026-02-21 22:38:06 +00:00
11 changed files with 50 additions and 28 deletions

View File

@@ -1,6 +1,4 @@
name: Deploy to Production
run-name: Deploy to Production by @${{ github.actor }}
name: Build and Deploy
on:
push:
branches:
@@ -10,14 +8,11 @@ jobs:
deploy:
runs-on: self-hosted
steps:
- name: Check out repository code
uses: actions/checkout@v4
- uses: actions/checkout@v4
- name: Build and deploy with Docker Compose
- name: Deploy nonograms-app
run: |
# Próba zatrzymania i usunięcia starego kontenera (ignoruje błąd jeśli nie istnieje)
docker compose down --remove-orphans || true
docker rm -f nonograms-app || true
# Start nowej wersji
docker compose up -d --build

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

View File

@@ -1,16 +1,22 @@
version: '3.8'
name: nonograms-app
services:
nonograms:
container_name: ${CONTAINER_NAME:-nonograms}
nonograms-app:
container_name: nonograms-app
build:
context: .
dockerfile: Dockerfile
# ports:
# - "8083:80"
expose:
- "80"
restart: unless-stopped
# volumes:
# - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
networks:
- npm_public
npm_public:
aliases:
- nonograms-app
networks:
npm_public:

View File

@@ -6,7 +6,21 @@
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="mask-icon" href="/nonograms.svg" color="#00f2fe" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
<title>Nonograms Pro - Vue 3 SOLID</title>
<title>Nonograms Pro - Logic Puzzle Game</title>
<meta name="description" content="Interactive Nonogram logic puzzles with a modern interface. Solve puzzles, use the built-in solver, and create your own custom games.">
<!-- Open Graph (for social media sharing like Facebook/Discord) -->
<meta property="og:title" content="Nonograms Pro - Logic Puzzle Game">
<meta property="og:description" content="Interactive Nonogram logic puzzles with a modern interface. Solve puzzles, use the built-in solver, and create your own custom games.">
<meta property="og:image" content="/screenshot.png">
<meta property="og:type" content="website">
<!-- Twitter Cards -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Nonograms Pro - Logic Puzzle Game">
<meta name="twitter:description" content="Interactive Nonogram logic puzzles with a modern interface. Solve puzzles, use the built-in solver, and create your own custom games.">
<meta name="twitter:image" content="/screenshot.png">
</head>
<body>
<div id="app"></div>

View File

@@ -1,6 +1,7 @@
server {
listen 80;
server_name localhost;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
index index.html;

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "vue-nonograms-solid",
"version": "1.15.5",
"version": "1.15.17",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "vue-nonograms-solid",
"version": "1.15.5",
"version": "1.15.17",
"dependencies": {
"@capacitor/android": "^8.1.0",
"@capacitor/cli": "^8.1.0",

View File

@@ -1,6 +1,6 @@
{
"name": "vue-nonograms-solid",
"version": "1.15.5",
"version": "1.15.17",
"homepage": "https://nonograms.7u.pl/",
"type": "module",
"scripts": {

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

@@ -657,13 +657,14 @@ onUnmounted(() => {
.camera-controls {
position: absolute;
bottom: 20px;
bottom: 0;
left: 0;
width: 100%;
display: flex;
justify-content: space-around;
align-items: center;
padding: 20px;
padding-bottom: 40px;
background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
}

View File

@@ -36,10 +36,14 @@ const handleKeyDown = (e) => {
const triggerVibration = () => {
if (!('vibrate' in navigator)) return;
try {
const isCoarse = window.matchMedia?.('(pointer: coarse)')?.matches;
const isTouch = navigator.maxTouchPoints && navigator.maxTouchPoints > 0;
if (isCoarse || isTouch) {
navigator.vibrate([80, 40, 120, 40, 180]);
navigator.vibrate([200, 100, 200, 100, 200]);
}
} catch (e) {
console.error('Vibration failed:', e);
}
};

View File

@@ -38,8 +38,6 @@ export function buildShareCanvas(data, t, formattedTime) {
bg.addColorStop(1, '#0a1324');
ctx.fillStyle = bg;
ctx.fillRect(0, 0, width, height);
ctx.fillStyle = 'rgba(0, 0, 0, 0.35)';
ctx.fillRect(12, 12, width - 24, height - 24);
ctx.fillStyle = '#e8fbff';
ctx.font = '700 26px "Segoe UI", sans-serif';
@@ -204,7 +202,6 @@ export function buildShareSVG(data, t, formattedTime) {
</linearGradient>
</defs>
<rect width="100%" height="100%" fill="url(#bg)"/>
<rect x="12" y="12" width="${width - 24}" height="${height - 24}" fill="${overlayColor}"/>
`;
// Text: Title & Time
@@ -253,8 +250,12 @@ export function buildShareSVG(data, t, formattedTime) {
} else if (state === 2) { // Cross
const d = cellSize * 0.6;
const off = cellSize * 0.2;
const x1 = (cx + off).toFixed(1);
const y1 = (cy + off).toFixed(1);
const x2 = (cx + off + d).toFixed(1);
const y2 = (cy + off + d).toFixed(1);
cells += `
<path d="M${cx + off} ${cy + off} L${cx + off + d} ${cy + off + d} M${cx + off + d} ${cy + off} L${cx + off} ${cy + off + d}"
<path d="M${x1} ${y1} L${x2} ${y2} M${x2} ${y1} L${x1} ${y2}"
stroke="${crossColor}" stroke-width="${lineWidth}" stroke-linecap="round"/>
`;
}