Compare commits
42 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 77df2d2aef | |||
| 11bfb4f1c8 | |||
| 3e006a1e94 | |||
| 18ed1549e0 | |||
| 0fffce9a29 | |||
| 3cec200ac0 | |||
| ec7e2b7c08 | |||
| 9e04b389af | |||
| 09fcd2097e | |||
| f0b9536e09 | |||
| a09ec48097 | |||
| d5c95f9a0f | |||
| 494bd8b8ca | |||
| b04781178e | |||
| 4af19c4d62 | |||
| e6c67d03c2 | |||
| 484db22208 | |||
| 4315c0ae70 | |||
| f417177858 | |||
| 31d0a1b6e3 | |||
| 6fa1b28902 | |||
| 56dbc3ff2c | |||
| 19ba065154 | |||
| 3e98872f15 | |||
| 6cee4e9a2b | |||
| 98f9933ed0 | |||
| 0ef75a0c9a | |||
| a6030f4b7b | |||
| 28b1d38951 | |||
| efe930af1e | |||
| 022a749f5f | |||
| 6e3ce8ea59 | |||
| 0c673e3bb6 | |||
| f3b28a1b9d | |||
| 597aba200a | |||
| 8396f0f067 | |||
| 9f8e32db36 | |||
| 7f333443dd | |||
| 29b8c33d3f | |||
| edf2013ab1 | |||
| e3864c60a0 | |||
| 44493a2200 |
@@ -1,118 +0,0 @@
|
|||||||
name: Android Build
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [master]
|
|
||||||
# Rebuild whenever app/engine/asset code changes.
|
|
||||||
# Skip server-only, deploy, and doc changes.
|
|
||||||
paths-ignore:
|
|
||||||
- 'deploy/**'
|
|
||||||
- 'argocd/**'
|
|
||||||
- 'solitaire_server/**'
|
|
||||||
- '**.md'
|
|
||||||
|
|
||||||
env:
|
|
||||||
ANDROID_SDK_ROOT: /opt/android-sdk
|
|
||||||
NDK_VERSION: "25.2.9519653"
|
|
||||||
BUILD_TOOLS_VERSION: "34.0.0"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-apk:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set short SHA
|
|
||||||
id: meta
|
|
||||||
run: echo "sha=${GITHUB_SHA::8}" >> "$GITHUB_OUTPUT"
|
|
||||||
|
|
||||||
# ── Android SDK + NDK ──────────────────────────────────────────────
|
|
||||||
# Cache the entire SDK root so subsequent runs skip the ~2 GB download.
|
|
||||||
- name: Cache Android SDK
|
|
||||||
uses: actions/cache@v4
|
|
||||||
id: sdk-cache
|
|
||||||
with:
|
|
||||||
path: ${{ env.ANDROID_SDK_ROOT }}
|
|
||||||
key: android-sdk-ndk${{ env.NDK_VERSION }}-bt${{ env.BUILD_TOOLS_VERSION }}
|
|
||||||
|
|
||||||
- name: Install system dependencies
|
|
||||||
run: sudo apt-get install -y openjdk-17-jdk-headless unzip
|
|
||||||
|
|
||||||
- name: Install Android SDK + NDK
|
|
||||||
if: steps.sdk-cache.outputs.cache-hit != 'true'
|
|
||||||
run: |
|
|
||||||
mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools"
|
|
||||||
curl -sL \
|
|
||||||
"https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip" \
|
|
||||||
-o /tmp/cmdtools.zip
|
|
||||||
unzip -q /tmp/cmdtools.zip -d /tmp/cmdtools
|
|
||||||
mv /tmp/cmdtools/cmdline-tools "$ANDROID_SDK_ROOT/cmdline-tools/latest"
|
|
||||||
# Accept all SDK licences non-interactively.
|
|
||||||
yes | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" --licenses \
|
|
||||||
> /dev/null 2>&1 || true
|
|
||||||
"$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" \
|
|
||||||
"build-tools;$BUILD_TOOLS_VERSION" \
|
|
||||||
"platforms;android-34" \
|
|
||||||
"ndk;$NDK_VERSION"
|
|
||||||
|
|
||||||
- name: Export Android environment
|
|
||||||
run: |
|
|
||||||
echo "ANDROID_HOME=$ANDROID_SDK_ROOT" >> "$GITHUB_ENV"
|
|
||||||
echo "ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/$NDK_VERSION" >> "$GITHUB_ENV"
|
|
||||||
|
|
||||||
# ── Rust toolchain ─────────────────────────────────────────────────
|
|
||||||
- name: Install Rust stable
|
|
||||||
run: |
|
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
|
|
||||||
| sh -s -- -y --default-toolchain stable --no-modify-path
|
|
||||||
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
|
||||||
|
|
||||||
- name: Add Android cross-compilation targets
|
|
||||||
run: |
|
|
||||||
rustup target add \
|
|
||||||
aarch64-linux-android \
|
|
||||||
armv7-linux-androideabi \
|
|
||||||
x86_64-linux-android
|
|
||||||
|
|
||||||
# ── Cargo caches ───────────────────────────────────────────────────
|
|
||||||
- name: Cache Cargo registry
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.cargo/registry/index
|
|
||||||
~/.cargo/registry/cache
|
|
||||||
~/.cargo/git/db
|
|
||||||
key: cargo-registry-${{ hashFiles('**/Cargo.lock') }}
|
|
||||||
restore-keys: cargo-registry-
|
|
||||||
|
|
||||||
- name: Cache cargo-apk binary
|
|
||||||
uses: actions/cache@v4
|
|
||||||
id: apk-tool-cache
|
|
||||||
with:
|
|
||||||
path: ~/.cargo/bin/cargo-apk
|
|
||||||
key: cargo-apk-${{ runner.os }}-stable
|
|
||||||
|
|
||||||
- name: Cache build artifacts
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: target
|
|
||||||
key: android-target-${{ hashFiles('**/Cargo.lock') }}-${{ github.sha }}
|
|
||||||
restore-keys: android-target-${{ hashFiles('**/Cargo.lock') }}-
|
|
||||||
|
|
||||||
# ── Build ──────────────────────────────────────────────────────────
|
|
||||||
- name: Install cargo-apk
|
|
||||||
if: steps.apk-tool-cache.outputs.cache-hit != 'true'
|
|
||||||
run: cargo install cargo-apk --locked
|
|
||||||
|
|
||||||
- name: Build debug APK
|
|
||||||
run: cargo apk build --package solitaire_app --lib
|
|
||||||
|
|
||||||
# ── Artifact ───────────────────────────────────────────────────────
|
|
||||||
- name: Upload APK
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: solitaire-quest-debug-${{ steps.meta.outputs.sha }}
|
|
||||||
path: target/debug/apk/solitaire-quest.apk
|
|
||||||
retention-days: 30
|
|
||||||
@@ -1,168 +0,0 @@
|
|||||||
name: Android Release
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- 'v*.*.*'
|
|
||||||
|
|
||||||
env:
|
|
||||||
ANDROID_SDK_ROOT: /opt/android-sdk
|
|
||||||
NDK_VERSION: "25.2.9519653"
|
|
||||||
BUILD_TOOLS_VERSION: "34.0.0"
|
|
||||||
GITEA_API: https://git.aleshym.co/api/v1
|
|
||||||
REPO: funman300/Rusty_Solitare
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-release-apk:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Extract version from tag
|
|
||||||
id: meta
|
|
||||||
run: echo "tag=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
|
|
||||||
|
|
||||||
# ── Android SDK + NDK ──────────────────────────────────────────────
|
|
||||||
# Shared cache key with the debug workflow so a warm debug run
|
|
||||||
# saves the ~2 GB SDK download for the release run too.
|
|
||||||
- name: Cache Android SDK
|
|
||||||
uses: actions/cache@v4
|
|
||||||
id: sdk-cache
|
|
||||||
with:
|
|
||||||
path: ${{ env.ANDROID_SDK_ROOT }}
|
|
||||||
key: android-sdk-ndk${{ env.NDK_VERSION }}-bt${{ env.BUILD_TOOLS_VERSION }}
|
|
||||||
|
|
||||||
# Java and jq are always needed (apksigner requires Java even on cache hits).
|
|
||||||
- name: Install system dependencies
|
|
||||||
run: sudo apt-get install -y openjdk-17-jdk-headless unzip jq
|
|
||||||
|
|
||||||
- name: Install Android SDK + NDK
|
|
||||||
if: steps.sdk-cache.outputs.cache-hit != 'true'
|
|
||||||
run: |
|
|
||||||
mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools"
|
|
||||||
curl -sL \
|
|
||||||
"https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip" \
|
|
||||||
-o /tmp/cmdtools.zip
|
|
||||||
unzip -q /tmp/cmdtools.zip -d /tmp/cmdtools
|
|
||||||
mv /tmp/cmdtools/cmdline-tools "$ANDROID_SDK_ROOT/cmdline-tools/latest"
|
|
||||||
yes | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" --licenses \
|
|
||||||
> /dev/null 2>&1 || true
|
|
||||||
"$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" \
|
|
||||||
"build-tools;$BUILD_TOOLS_VERSION" \
|
|
||||||
"platforms;android-34" \
|
|
||||||
"ndk;$NDK_VERSION"
|
|
||||||
|
|
||||||
- name: Export Android environment
|
|
||||||
run: |
|
|
||||||
echo "ANDROID_HOME=$ANDROID_SDK_ROOT" >> "$GITHUB_ENV"
|
|
||||||
echo "ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/$NDK_VERSION" >> "$GITHUB_ENV"
|
|
||||||
|
|
||||||
# ── Rust toolchain ─────────────────────────────────────────────────
|
|
||||||
- name: Install Rust stable
|
|
||||||
run: |
|
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
|
|
||||||
| sh -s -- -y --default-toolchain stable --no-modify-path
|
|
||||||
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
|
||||||
|
|
||||||
- name: Add Android cross-compilation targets
|
|
||||||
run: |
|
|
||||||
rustup target add \
|
|
||||||
aarch64-linux-android \
|
|
||||||
armv7-linux-androideabi \
|
|
||||||
x86_64-linux-android
|
|
||||||
|
|
||||||
# ── Cargo caches ───────────────────────────────────────────────────
|
|
||||||
- name: Cache Cargo registry
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.cargo/registry/index
|
|
||||||
~/.cargo/registry/cache
|
|
||||||
~/.cargo/git/db
|
|
||||||
key: cargo-registry-${{ hashFiles('**/Cargo.lock') }}
|
|
||||||
restore-keys: cargo-registry-
|
|
||||||
|
|
||||||
- name: Cache cargo-apk binary
|
|
||||||
uses: actions/cache@v4
|
|
||||||
id: apk-tool-cache
|
|
||||||
with:
|
|
||||||
path: ~/.cargo/bin/cargo-apk
|
|
||||||
key: cargo-apk-${{ runner.os }}-stable
|
|
||||||
|
|
||||||
- name: Cache build artifacts
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: target
|
|
||||||
key: android-release-target-${{ hashFiles('**/Cargo.lock') }}-${{ github.sha }}
|
|
||||||
restore-keys: android-release-target-${{ hashFiles('**/Cargo.lock') }}-
|
|
||||||
|
|
||||||
# ── Build ──────────────────────────────────────────────────────────
|
|
||||||
- name: Install cargo-apk
|
|
||||||
if: steps.apk-tool-cache.outputs.cache-hit != 'true'
|
|
||||||
run: cargo install cargo-apk --locked
|
|
||||||
|
|
||||||
- name: Build release APK
|
|
||||||
run: cargo apk build --release --package solitaire_app --lib
|
|
||||||
|
|
||||||
# ── Sign ───────────────────────────────────────────────────────────
|
|
||||||
- name: Decode keystore
|
|
||||||
run: echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > /tmp/solitaire-release.jks
|
|
||||||
|
|
||||||
- name: Align and sign APK
|
|
||||||
run: |
|
|
||||||
TAG="${{ steps.meta.outputs.tag }}"
|
|
||||||
UNSIGNED="target/release/apk/solitaire-quest.apk"
|
|
||||||
ALIGNED="/tmp/solitaire-quest-aligned.apk"
|
|
||||||
SIGNED="ferrous-solitaire-${TAG}.apk"
|
|
||||||
|
|
||||||
"$ANDROID_SDK_ROOT/build-tools/$BUILD_TOOLS_VERSION/zipalign" -v 4 \
|
|
||||||
"$UNSIGNED" "$ALIGNED"
|
|
||||||
|
|
||||||
"$ANDROID_SDK_ROOT/build-tools/$BUILD_TOOLS_VERSION/apksigner" sign \
|
|
||||||
--ks /tmp/solitaire-release.jks \
|
|
||||||
--ks-pass "pass:${{ secrets.KEYSTORE_PASS }}" \
|
|
||||||
--ks-key-alias "${{ secrets.KEY_ALIAS }}" \
|
|
||||||
--key-pass "pass:${{ secrets.KEY_PASS }}" \
|
|
||||||
--out "$SIGNED" \
|
|
||||||
"$ALIGNED"
|
|
||||||
|
|
||||||
- name: Verify APK signature
|
|
||||||
run: |
|
|
||||||
TAG="${{ steps.meta.outputs.tag }}"
|
|
||||||
"$ANDROID_SDK_ROOT/build-tools/$BUILD_TOOLS_VERSION/apksigner" verify \
|
|
||||||
--verbose "ferrous-solitaire-${TAG}.apk"
|
|
||||||
|
|
||||||
# ── Publish ────────────────────────────────────────────────────────
|
|
||||||
- name: Create Gitea release
|
|
||||||
id: release
|
|
||||||
run: |
|
|
||||||
TAG="${{ steps.meta.outputs.tag }}"
|
|
||||||
# Try to create; fall back to fetching the existing release on 409.
|
|
||||||
RESPONSE=$(curl -s -o /tmp/release.json -w "%{http_code}" \
|
|
||||||
-X POST "$GITEA_API/repos/$REPO/releases" \
|
|
||||||
-H "Authorization: token ${{ secrets.CI_TOKEN }}" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d "{\"tag_name\":\"$TAG\",\"name\":\"$TAG\",\"draft\":false,\"prerelease\":false}")
|
|
||||||
if [ "$RESPONSE" = "409" ]; then
|
|
||||||
curl -sf "$GITEA_API/repos/$REPO/releases/tags/$TAG" \
|
|
||||||
-H "Authorization: token ${{ secrets.CI_TOKEN }}" \
|
|
||||||
> /tmp/release.json
|
|
||||||
elif [ "$RESPONSE" != "201" ]; then
|
|
||||||
echo "Release creation failed with HTTP $RESPONSE"
|
|
||||||
cat /tmp/release.json
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
RELEASE_ID=$(jq -r '.id' /tmp/release.json)
|
|
||||||
echo "release_id=$RELEASE_ID" >> "$GITHUB_OUTPUT"
|
|
||||||
|
|
||||||
- name: Upload signed APK
|
|
||||||
run: |
|
|
||||||
TAG="${{ steps.meta.outputs.tag }}"
|
|
||||||
APK="ferrous-solitaire-${TAG}.apk"
|
|
||||||
curl -sf -X POST \
|
|
||||||
"$GITEA_API/repos/$REPO/releases/${{ steps.release.outputs.release_id }}/assets?name=$APK" \
|
|
||||||
-H "Authorization: token ${{ secrets.CI_TOKEN }}" \
|
|
||||||
-H "Content-Type: application/octet-stream" \
|
|
||||||
--data-binary @"$APK"
|
|
||||||
@@ -16,8 +16,3 @@ data/
|
|||||||
*.jks.bak
|
*.jks.bak
|
||||||
*.jks.bak*
|
*.jks.bak*
|
||||||
*.keystore
|
*.keystore
|
||||||
|
|
||||||
# Kubernetes secrets — apply manually, never commit
|
|
||||||
deploy/matomo-secret.yaml
|
|
||||||
deploy/*-secret.yaml
|
|
||||||
deploy/*-auth-secret.yaml
|
|
||||||
|
|||||||
@@ -12,14 +12,6 @@ spec:
|
|||||||
destination:
|
destination:
|
||||||
server: https://kubernetes.default.svc
|
server: https://kubernetes.default.svc
|
||||||
namespace: solitaire
|
namespace: solitaire
|
||||||
# Secrets are applied manually and must not be pruned by ArgoCD.
|
|
||||||
ignoreDifferences:
|
|
||||||
- group: ""
|
|
||||||
kind: Secret
|
|
||||||
name: matomo-secret
|
|
||||||
namespace: solitaire
|
|
||||||
jsonPointers:
|
|
||||||
- /data
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ resources:
|
|||||||
- mariadb-deployment.yaml
|
- mariadb-deployment.yaml
|
||||||
- mariadb-service.yaml
|
- mariadb-service.yaml
|
||||||
- matomo-pvc.yaml
|
- matomo-pvc.yaml
|
||||||
|
- matomo-secret.yaml
|
||||||
- matomo-deployment.yaml
|
- matomo-deployment.yaml
|
||||||
- matomo-service.yaml
|
- matomo-service.yaml
|
||||||
- ingress-analytics.yaml
|
- ingress-analytics.yaml
|
||||||
@@ -20,4 +21,4 @@ resources:
|
|||||||
images:
|
images:
|
||||||
- name: solitaire-server
|
- name: solitaire-server
|
||||||
newName: git.aleshym.co/funman300/solitaire-server
|
newName: git.aleshym.co/funman300/solitaire-server
|
||||||
newTag: 0f650311
|
newTag: 3e006a1e
|
||||||
|
|||||||
@@ -17,20 +17,18 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: matomo
|
- name: matomo
|
||||||
image: matomo:5.10.0
|
image: bitnami/matomo:5
|
||||||
env:
|
env:
|
||||||
- name: MATOMO_DATABASE_HOST
|
- name: MATOMO_DATABASE_HOST
|
||||||
value: mariadb
|
value: mariadb
|
||||||
- name: MATOMO_DATABASE_PORT
|
- name: MATOMO_DATABASE_PORT_NUMBER
|
||||||
value: "3306"
|
value: "3306"
|
||||||
- name: MATOMO_DATABASE_ADAPTER
|
- name: MATOMO_DATABASE_NAME
|
||||||
value: PDO\MYSQL
|
|
||||||
- name: MATOMO_DATABASE_DBNAME
|
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: matomo-secret
|
name: matomo-secret
|
||||||
key: MYSQL_DATABASE
|
key: MYSQL_DATABASE
|
||||||
- name: MATOMO_DATABASE_USERNAME
|
- name: MATOMO_DATABASE_USER
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: matomo-secret
|
name: matomo-secret
|
||||||
@@ -40,32 +38,40 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: matomo-secret
|
name: matomo-secret
|
||||||
key: MYSQL_PASSWORD
|
key: MYSQL_PASSWORD
|
||||||
# Traefik terminates SSL; tell Matomo to trust X-Forwarded-* headers
|
- name: MATOMO_USERNAME
|
||||||
- name: MATOMO_GENERAL_ASSUME_SECURE_PROTOCOL
|
value: admin
|
||||||
value: "1"
|
- name: MATOMO_PASSWORD
|
||||||
- name: MATOMO_GENERAL_PROXY_CLIENT_HEADERS
|
valueFrom:
|
||||||
value: HTTP_X_FORWARDED_FOR
|
secretKeyRef:
|
||||||
- name: MATOMO_GENERAL_PROXY_HOST_HEADERS
|
name: matomo-secret
|
||||||
value: HTTP_X_FORWARDED_HOST
|
key: MATOMO_ADMIN_PASSWORD
|
||||||
|
- name: MATOMO_EMAIL
|
||||||
|
value: funman300@gmail.com
|
||||||
|
- name: MATOMO_WEBSITE_NAME
|
||||||
|
value: "Solitaire Quest"
|
||||||
|
- name: MATOMO_WEBSITE_HOST
|
||||||
|
value: "https://klondike.aleshym.co"
|
||||||
|
- name: MATOMO_HOST
|
||||||
|
value: analytics.aleshym.co
|
||||||
|
- name: MATOMO_ENABLE_PROXY_URI_HEADER
|
||||||
|
value: "yes"
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 8080
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: matomo-data
|
- name: matomo-data
|
||||||
mountPath: /var/www/html
|
mountPath: /bitnami/matomo
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /matomo.php
|
path: /index.php
|
||||||
port: 80
|
port: 8080
|
||||||
initialDelaySeconds: 60
|
initialDelaySeconds: 60
|
||||||
periodSeconds: 30
|
periodSeconds: 30
|
||||||
timeoutSeconds: 5
|
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /matomo.php
|
path: /index.php
|
||||||
port: 80
|
port: 8080
|
||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
timeoutSeconds: 5
|
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# Credentials for MariaDB and the Matomo admin account.
|
||||||
|
# Regenerate with: python3 -c "import secrets; print(secrets.token_urlsafe(18))"
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: matomo-secret
|
||||||
|
namespace: solitaire
|
||||||
|
stringData:
|
||||||
|
MYSQL_ROOT_PASSWORD: "jspRn-QU18sZhB55FR-JfrMJ"
|
||||||
|
MYSQL_DATABASE: matomo
|
||||||
|
MYSQL_USER: matomo
|
||||||
|
MYSQL_PASSWORD: "ZxDp648UuL5fsN7eQI23E7ue"
|
||||||
|
MATOMO_ADMIN_PASSWORD: "J6QUtbroK4Z7zao4Dnl0J7e2"
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
# DO NOT COMMIT THE REAL VERSION OF THIS FILE.
|
|
||||||
# deploy/matomo-secret.yaml is gitignored — apply it manually once:
|
|
||||||
#
|
|
||||||
# cp deploy/matomo-secret.yaml.example deploy/matomo-secret.yaml
|
|
||||||
# # edit the passwords below, then:
|
|
||||||
# kubectl apply -f deploy/matomo-secret.yaml
|
|
||||||
# kubectl annotate secret matomo-secret -n solitaire \
|
|
||||||
# argocd.argoproj.io/sync-options=Prune=false --overwrite
|
|
||||||
#
|
|
||||||
# Generate strong passwords with:
|
|
||||||
# python3 -c "import secrets; print(secrets.token_urlsafe(18))"
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: matomo-secret
|
|
||||||
namespace: solitaire
|
|
||||||
stringData:
|
|
||||||
MYSQL_ROOT_PASSWORD: "CHANGE_ME"
|
|
||||||
MYSQL_DATABASE: matomo
|
|
||||||
MYSQL_USER: matomo
|
|
||||||
MYSQL_PASSWORD: "CHANGE_ME"
|
|
||||||
MATOMO_ADMIN_PASSWORD: "CHANGE_ME"
|
|
||||||
@@ -9,4 +9,4 @@ spec:
|
|||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: 80
|
targetPort: 8080
|
||||||
|
|||||||
@@ -143,10 +143,11 @@ pub struct Settings {
|
|||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub window_geometry: Option<WindowGeometry>,
|
pub window_geometry: Option<WindowGeometry>,
|
||||||
/// Identifier of the active card-art theme. Matches `meta.id` from
|
/// Identifier of the active card-art theme. Matches `meta.id` from
|
||||||
/// the theme's `theme.ron` manifest. `"classic"` and `"dark"` are
|
/// the theme's `theme.ron` manifest. `"default"` is the bundled
|
||||||
/// always present; user-supplied themes register under their own ids.
|
/// theme and is always present in the registry; user-supplied
|
||||||
/// Older `settings.json` files that stored `"default"` will fall
|
/// themes register under their own ids when they're imported.
|
||||||
/// back to the dark embedded theme at runtime.
|
/// Older `settings.json` files default cleanly to `"default"` via
|
||||||
|
/// `#[serde(default = ...)]`.
|
||||||
#[serde(default = "default_theme_id")]
|
#[serde(default = "default_theme_id")]
|
||||||
pub selected_theme_id: String,
|
pub selected_theme_id: String,
|
||||||
/// Set to `true` once the achievement-onboarding info-toast has been
|
/// Set to `true` once the achievement-onboarding info-toast has been
|
||||||
@@ -272,7 +273,7 @@ fn default_music_volume() -> f32 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn default_theme_id() -> String {
|
fn default_theme_id() -> String {
|
||||||
"classic".to_string()
|
"default".to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Default tooltip-hover dwell delay in seconds. Mirrors
|
/// Default tooltip-hover dwell delay in seconds. Mirrors
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<defs>
|
|
||||||
<pattern id="dp" x="0" y="0" width="28" height="28" patternUnits="userSpaceOnUse">
|
|
||||||
<rect width="28" height="28" fill="#1a3a6e"/>
|
|
||||||
<polygon points="14,2 26,14 14,26 2,14" fill="#2255aa"/>
|
|
||||||
<polygon points="14,7 21,14 14,21 7,14" fill="#1a3a6e"/>
|
|
||||||
</pattern>
|
|
||||||
</defs>
|
|
||||||
<!-- White card background -->
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14" fill="#FAFAF8"/>
|
|
||||||
<!-- Red outer border -->
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="none" stroke="#CC1111" stroke-width="4"/>
|
|
||||||
<!-- Navy diamond pattern inset -->
|
|
||||||
<rect x="16" y="16" width="224" height="352" rx="8" ry="8" fill="url(#dp)"/>
|
|
||||||
<!-- Thin red frame around pattern -->
|
|
||||||
<rect x="16" y="16" width="224" height="352" rx="8" ry="8"
|
|
||||||
fill="none" stroke="#CC1111" stroke-width="2"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 924 B |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">10</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">10</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">2</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">2</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">3</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">3</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">4</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">4</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">5</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">5</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">6</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">6</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">7</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">7</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">8</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">8</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">9</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">9</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">A</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">A</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">J</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">J</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">K</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">K</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">Q</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">Q</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">10</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">10</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">2</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">2</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">3</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">3</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">4</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">4</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">5</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">5</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">6</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">6</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">7</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">7</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">8</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">8</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">9</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">9</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">A</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">A</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">J</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">J</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">K</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">K</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">Q</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">Q</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">10</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">10</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">2</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">2</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">3</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">3</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">4</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">4</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">5</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">5</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">6</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">6</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">7</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">7</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">8</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">8</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">9</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">9</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">A</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">A</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">J</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">J</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">K</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">K</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">Q</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#CC1111">Q</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">10</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">10</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">2</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">2</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">3</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">3</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">4</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">4</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">5</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">5</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">6</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">6</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">7</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">7</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">8</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">8</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">9</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">9</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">A</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">A</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">J</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">J</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">K</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">K</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
|
||||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
|
||||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
|
||||||
|
|
||||||
<!-- Top-left corner: rank label + small suit -->
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">Q</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
|
||||||
<g transform="translate(96 160) scale(2)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
|
||||||
<g transform="rotate(180 128 192)">
|
|
||||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
|
||||||
fill="#111111">Q</text>
|
|
||||||
<g transform="translate(14 50) scale(0.625)">
|
|
||||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,64 +0,0 @@
|
|||||||
(
|
|
||||||
meta: (
|
|
||||||
id: "classic",
|
|
||||||
name: "Classic",
|
|
||||||
author: "Ferrous Solitaire",
|
|
||||||
version: "1.0.0",
|
|
||||||
card_aspect: (2, 3),
|
|
||||||
),
|
|
||||||
back: "back.svg",
|
|
||||||
faces: {
|
|
||||||
"clubs_ace": "clubs_ace.svg",
|
|
||||||
"clubs_2": "clubs_2.svg",
|
|
||||||
"clubs_3": "clubs_3.svg",
|
|
||||||
"clubs_4": "clubs_4.svg",
|
|
||||||
"clubs_5": "clubs_5.svg",
|
|
||||||
"clubs_6": "clubs_6.svg",
|
|
||||||
"clubs_7": "clubs_7.svg",
|
|
||||||
"clubs_8": "clubs_8.svg",
|
|
||||||
"clubs_9": "clubs_9.svg",
|
|
||||||
"clubs_10": "clubs_10.svg",
|
|
||||||
"clubs_jack": "clubs_jack.svg",
|
|
||||||
"clubs_queen": "clubs_queen.svg",
|
|
||||||
"clubs_king": "clubs_king.svg",
|
|
||||||
"diamonds_ace": "diamonds_ace.svg",
|
|
||||||
"diamonds_2": "diamonds_2.svg",
|
|
||||||
"diamonds_3": "diamonds_3.svg",
|
|
||||||
"diamonds_4": "diamonds_4.svg",
|
|
||||||
"diamonds_5": "diamonds_5.svg",
|
|
||||||
"diamonds_6": "diamonds_6.svg",
|
|
||||||
"diamonds_7": "diamonds_7.svg",
|
|
||||||
"diamonds_8": "diamonds_8.svg",
|
|
||||||
"diamonds_9": "diamonds_9.svg",
|
|
||||||
"diamonds_10": "diamonds_10.svg",
|
|
||||||
"diamonds_jack": "diamonds_jack.svg",
|
|
||||||
"diamonds_queen": "diamonds_queen.svg",
|
|
||||||
"diamonds_king": "diamonds_king.svg",
|
|
||||||
"hearts_ace": "hearts_ace.svg",
|
|
||||||
"hearts_2": "hearts_2.svg",
|
|
||||||
"hearts_3": "hearts_3.svg",
|
|
||||||
"hearts_4": "hearts_4.svg",
|
|
||||||
"hearts_5": "hearts_5.svg",
|
|
||||||
"hearts_6": "hearts_6.svg",
|
|
||||||
"hearts_7": "hearts_7.svg",
|
|
||||||
"hearts_8": "hearts_8.svg",
|
|
||||||
"hearts_9": "hearts_9.svg",
|
|
||||||
"hearts_10": "hearts_10.svg",
|
|
||||||
"hearts_jack": "hearts_jack.svg",
|
|
||||||
"hearts_queen": "hearts_queen.svg",
|
|
||||||
"hearts_king": "hearts_king.svg",
|
|
||||||
"spades_ace": "spades_ace.svg",
|
|
||||||
"spades_2": "spades_2.svg",
|
|
||||||
"spades_3": "spades_3.svg",
|
|
||||||
"spades_4": "spades_4.svg",
|
|
||||||
"spades_5": "spades_5.svg",
|
|
||||||
"spades_6": "spades_6.svg",
|
|
||||||
"spades_7": "spades_7.svg",
|
|
||||||
"spades_8": "spades_8.svg",
|
|
||||||
"spades_9": "spades_9.svg",
|
|
||||||
"spades_10": "spades_10.svg",
|
|
||||||
"spades_jack": "spades_jack.svg",
|
|
||||||
"spades_queen": "spades_queen.svg",
|
|
||||||
"spades_king": "spades_king.svg",
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
Before Width: | Height: | Size: 956 B After Width: | Height: | Size: 956 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |