This commit is contained in:
33333-33333 2026-06-05 15:28:02 +09:00
commit a06795c694
7 changed files with 21 additions and 18 deletions

1
.htaccess Normal file
View file

@ -0,0 +1 @@
AddType font/ttf .ttf

View file

@ -63,7 +63,6 @@ Open `index.html` in a modern browser. No build step or third-party dependency i
- Dynamic sprites now pause intermittently instead of walking continuously. - Dynamic sprites now pause intermittently instead of walking continuously.
- Night rendering is darker. - Night rendering is darker.
- Object picking now uses sprite-sized, per-opaque-pixel hit testing, so transparent pixels are not clickable. - Object picking now uses sprite-sized, per-opaque-pixel hit testing, so transparent pixels are not clickable.
- The CSS font stack now tries `3x5 MT Pixel Font` first. The font file itself is not bundled.
## Phase 5 changes ## Phase 5 changes

View file

@ -446,7 +446,7 @@ window.addEventListener('load', () => {
}); });
</script> </script>
<style> <style>
body{font-family:system-ui,sans-serif;margin:24px;background:#f7f4ea;color:#2b2b2b}h1{margin-bottom:4px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:12px}.card{background:#fff;border:1px solid #ddd;border-radius:10px;padding:14px;margin:10px 0}.media{display:flex;gap:14px;align-items:flex-start}.muted{color:#666;font-size:13px}.error{background:#fff1f1;border:1px solid #e3aaaa;padding:12px;border-radius:8px}code{background:#eee;padding:1px 4px;border-radius:4px}input{max-width:210px;padding:6px;margin:2px 4px 2px 0}button{margin:2px 4px 2px 0;padding:6px 9px;border:1px solid #bbb;border-radius:6px;background:#f5f5f5}.danger{background:#b92323;color:white;border:0}.ok{background:#267a3e;color:white;border:0}.warn{background:#8b5b00;color:white;border:0}.pill{display:inline-block;padding:2px 7px;border-radius:999px;background:#eee;font-size:12px}.nav a{margin-right:10px}.thumb{position:relative;flex:0 0 auto;width:128px;height:128px;background:#f2eadb;border:1px solid #ddd;image-rendering:pixelated;overflow:hidden}.thumb i{position:absolute;transform:scale(1.02);transform-origin:0 0}.thumb.empty:after{content:'no image';position:absolute;inset:0;display:grid;place-items:center;color:#777;font-size:11px}@media(max-width:520px){.grid{grid-template-columns:1fr}.media{flex-direction:column}.thumb{width:112px;height:112px}} @font-face{font-family:PixelIslandServiceFont;src:url("../assets/fonts/PixelMplus10-Regular.ttf?v=20260605-2") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}body{font-family:PixelIslandServiceFont,sans-serif;margin:24px;background:#f7f4ea;color:#2b2b2b}h1{margin-bottom:4px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:12px}.card{background:#fff;border:1px solid #ddd;border-radius:10px;padding:14px;margin:10px 0}.media{display:flex;gap:14px;align-items:flex-start}.muted{color:#666;font-size:13px}.error{background:#fff1f1;border:1px solid #e3aaaa;padding:12px;border-radius:8px}code{background:#eee;padding:1px 4px;border-radius:4px}input{max-width:210px;padding:6px;margin:2px 4px 2px 0}button{margin:2px 4px 2px 0;padding:6px 9px;border:1px solid #bbb;border-radius:6px;background:#f5f5f5}.danger{background:#b92323;color:white;border:0}.ok{background:#267a3e;color:white;border:0}.warn{background:#8b5b00;color:white;border:0}.pill{display:inline-block;padding:2px 7px;border-radius:999px;background:#eee;font-size:12px}.nav a{margin-right:10px}.thumb{position:relative;flex:0 0 auto;width:128px;height:128px;background:#f2eadb;border:1px solid #ddd;image-rendering:pixelated;overflow:hidden}.thumb i{position:absolute;transform:scale(1.02);transform-origin:0 0}.thumb.empty:after{content:'no image';position:absolute;inset:0;display:grid;place-items:center;color:#777;font-size:11px}@media(max-width:520px){.grid{grid-template-columns:1fr}.media{flex-direction:column}.thumb{width:112px;height:112px}}
</style> </style>
<h1>Pixel Island Admin</h1> <h1>Pixel Island Admin</h1>
<p class="muted">Store: <?=h($storeLabel)?> / Users: <?=count($accounts)?> / Pictures: <?=count($assets)?> / Reports: <?=count($reports)?></p> <p class="muted">Store: <?=h($storeLabel)?> / Users: <?=count($accounts)?> / Pictures: <?=count($assets)?> / Reports: <?=count($reports)?></p>

Binary file not shown.

View file

@ -4,7 +4,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Pixel Island</title> <title>Pixel Island</title>
<link rel="stylesheet" href="./styles.css" /> <link rel="stylesheet" href="./styles.css?v=20260605-2" />
</head> </head>
<body> <body>
<div class="app"> <div class="app">

View file

@ -1,3 +1,11 @@
@font-face {
font-family: "PixelIslandServiceFont";
src: url("./assets/fonts/PixelMplus10-Regular.ttf?v=20260605-2") format("truetype");
font-weight: 100 900;
font-style: normal;
font-display: swap;
}
:root { :root {
--ink: #243044; --ink: #243044;
--muted: #6f7b91; --muted: #6f7b91;
@ -25,7 +33,7 @@ body {
margin: 0; margin: 0;
color: var(--ink); color: var(--ink);
background: #92d8ff; background: #92d8ff;
font-family: "3x5 MT Pixel Font", "Press Start 2P", "PixelMplus10", "DotGothic16", "Courier New", "Monaco", "Lucida Console", ui-monospace, monospace; font-family: "PixelIslandServiceFont", sans-serif;
overflow: hidden; overflow: hidden;
} }
@ -742,7 +750,6 @@ button:disabled, .tool:disabled { opacity: .45; cursor: not-allowed; transform:
.heroEditor .hint { line-height: 1.35; } .heroEditor .hint { line-height: 1.35; }
.compactEditorTop { margin-bottom: 4px; min-height: 0; } .compactEditorTop { margin-bottom: 4px; min-height: 0; }
body, button, input, select, textarea { font-smooth: never; -webkit-font-smoothing: none; }
.studioDrawer { width: min(600px, calc(100vw - 24px)); } .studioDrawer { width: min(600px, calc(100vw - 24px)); }
.paintLayout { .paintLayout {
@ -858,10 +865,6 @@ body, button, input, select, textarea { font-smooth: never; -webkit-font-smoothi
background: var(--sun); background: var(--sun);
} }
body, button, input, select, textarea {
font-family: "Courier New", "Lucida Console", Monaco, monospace;
letter-spacing: .02em;
}
button, .tab, .tool, .iconButton, .cardTitle, .logo { button, .tab, .tool, .iconButton, .cardTitle, .logo {
text-transform: uppercase; text-transform: uppercase;
font-weight: 900; font-weight: 900;
@ -900,12 +903,6 @@ button, .tab, .tool, .iconButton, .cardTitle, .logo {
color: var(--muted); color: var(--muted);
} }
body, button, input, select, textarea {
font-family: "MS Gothic", "Osaka-Mono", "DotumChe", "Courier New", ui-monospace, monospace;
letter-spacing: .02em;
-webkit-font-smoothing: none;
text-rendering: geometricPrecision;
}
.toolRow { grid-template-columns: repeat(6, minmax(0, 1fr)); } .toolRow { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.editorHistoryRow { grid-template-columns: repeat(2, minmax(0, 1fr)); } .editorHistoryRow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.advancedRow { .advancedRow {
@ -994,9 +991,6 @@ body, button, input, select, textarea {
grid-column: span 2; grid-column: span 2;
} }
body, button, input, select, textarea {
font-family: "3x5 MT Pixel Font", "Press Start 2P", "PixelMplus10", "DotGothic16", "MS Gothic", "Osaka-Mono", "Courier New", ui-monospace, monospace;
}
.hiddenSectionTitle { .hiddenSectionTitle {
margin: 8px 0 6px; margin: 8px 0 6px;
padding: 5px 7px; padding: 5px 7px;

9
web.config Normal file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".ttf" />
<mimeMap fileExtension=".ttf" mimeType="font/ttf" />
</staticContent>
</system.webServer>
</configuration>