换页不再白屏一下、注册页的「手机号注册」能点了
- 点站内链接时,旧页面不再先淡成一片白底 —— 之前新页面要等网络往返才到,中间那一下就是白屏。现在旧页面保持原样,换页后新页面照旧淡入、内容依次上滑。
- 注册页的「手机号注册」原来点了像是没反应:它只是把单选按钮选中,页面上的提示文案与「发验证码」的去向都没变。现在切一下就整页重渲染,提示、去向、表单都跟着变。
- 如果站点没有配置短信服务,注册页不会再把你留在「手机号注册」这个空壳上,而是自动退回邮箱注册。
ウェブサイトとサーバーMODの更新履歴です。新しいものから順に並んでいます
CloudRidge のウェブサイトとサーバーMODの更新を、新しい順にまとめました。あの機能がいつ追加されたのか、あの不具合がいつ直ったのかを振り返りたいときにどうぞ。
#t-xxx を入れればそのツールを直接開けますし、スマホではタブバーを横にスクロールできます。グラデーション文字は固定二色から 2~6 個のカラーストップに変わりました:バーを押すと追加、ドラッグで位置の調整、ストップを選んで「この色を削除」を押せば消えます。色は位置に沿って一文字ずつ補間されるので、§ コード / MiniMessage / tellraw / MOTD の四種類がまとめて変わります。MOTD が長すぎる場合は注意が出ます_admlogin.php は本番では必ず404に(訪問者をそのまま管理者にできてしまうため)。?to= もサイト外へは飛べなくなりました。② 速度テストページの ping / dns は、ドメイン名を渡してポートを探る作りだったため、DNS リバインディングで内部ネットワークを探らされる可能性がありました。いまは検証済みの IP にだけ接続します。③ 偽装した X-Real-IP / CF-Connecting-IP で IP 単位のレート制限を回避できていました。いまはリクエスト元が本当にループバックのときだけ、こうしたヘッダーを信用します。③ を完全に塞ぐには、nginx で X-CDR-Proxy-Secret を注入し、site/config/config.php に security.proxy_secret を記入する必要があります —— これはサーバー設定に触るので、ご了解を待ってから行います。127.0.0.1:8100(内部アドレス、疎通確認用)と表示されていました。公開されているウェブマップのアドレスを表示するようにしました。body.cdr-body::before(生成内容)にあり、生成内容は必ず実子要素より先に描かれるため、動画がグラデーションを完全に覆い、まったく効いていませんでした.pub-bg-video は動画要素のクラスでありながら、<html> に付けるスイッチ用クラスでもあったため、画面全体を覆う固定動画レイヤーの規則がそのままルート要素に適用され、ルートが position: fixed になってページの高さが1画面分に潰れ、ホイールで動かす余地が消えていましたpointer-events: none は継承すること。文書ツリー全体がマウスを受け取れなくなり、<html> だけが反応するため「戻る」ボタンは押せませんでしたpub-bg-on に改名し、要素側の規則を video.pub-bg-video に絞るだけ。二度と同じ名前はぶつかりません<html> を測っていましたblur(32px) saturate(180%) が付いており、このページでは同時に 7〜8 枚のガラス面が見えているため、スクロールのたびにその背後すべてを再サンプリングしていました/* 6% */ と書いてしまい —— CSS のコメントは入れ子にできません —— その */ が外側のコメントを早く閉じ、続く } がルールを早く閉じ、パーサーが後続のルールをすべて飲み込んでいましたbackground: none がプライマリボタン自身のグラデーションを消していました。紺地に白文字が白地に白文字になり、ボタンが丸ごと消えていましたbackground: none は読み込み中のボタンまで消しており、ガラス層はそれらを除外しているため、読み込み中の数秒間ボタンが完全に透明になっていました。今は読み込み中のボタンにも背景が戻りますtransition は宣言を丸ごと差し替える仕組みで、「1 つのプロパティだけにトランジションを足す」書き方がありません。そう書くにはカードの入場アニメーションとホバーアニメーションまで上書きするセレクタが必要になり、スクロール入場が「フェード+せり上がり」から唐突な切り替えになります。そこでスクリプトが 1 つの数値(光の強さ)を毎フレーム緩めていく方式にし、落ち着いたら止まるようにしましたbackdrop-filter は空の背景をサンプリングしてしまい、すりガラスが完全に壊れます。ブロックごとに淡入淡出させればその祖先はできません。本文中で position: fixed なのは背景レイヤーと貼り付く名前の行の 2 つだけで、どちらもこの集合の外にあるため移動しても安全ですbackdrop-filter を使い、マップはページを開くときに canvas で一度だけ描画します。毎フレームのスクリプトはありません.cdr-container で、高さはページヘッド分しかありません。そのため sticky の可動範囲がそこに閉じ込められ、ヘッドを越えると一緒に流れ去ってしまいます。そこで position: fixed にし、スクリプトで元の位置に同じ高さのプレースホルダを差し込みました(fixed は文書フローから外れるため、差し込まないと貼り付いた瞬間にページ全体が 86px 跳ね上がります)/players/zlc)は 1 バイトも変わっていません.is-lit を付けるので、--glass-spot が継承チェーンを伝ってそのカード内のすべての .stat-mini に渡ってしまいます —— 一つのスイッチが七、八枚の光る面になっていました。站長が見た「マウスは別の場所にあるのに、なぜ全部光るのか」はこれです。証拠:プローブの黄色いバーに spot= カウンタを追加しました。これは .is-lit の数ではなく、計算された --glass-spot が透明でない要素の数を数えます —— 修正前、ポインタをカードのタイトル余白に置くと lit=1 spot=8/27 でした--glass-spot を transparent にリセットし、継承チェーンをそこで断ちます。ポインタが実際に載っている面だけがスクリプトから .is-lit を受け取ります。修正後は spot=1/27.is-lit の規則と同じ詳細度で、しかも後に書かれています —— 「後勝ち」により、素の body.cdr-body .is-lit はまるごと上書きされ、ハイライトが完全に消えます(実測 lit=1 spot=0/27)。したがって .is-lit の規則は四つのセレクタをすべて列挙して詳細度を上げる必要があります。この手順を飛ばすと、「光りすぎ」から一気に「まったく光らない」になりますrequestAnimationFrame を待つだけでなく、新しい要素に入った時点で同期的に一度書き込むようにしました。そうしないと最初のフレームに座標がなく、光がカード中央に一瞬現れてからポインタへ飛びます。今は一つの .is-lit が一枚の光る面です —— ポインタがある場所がそのまま光りますradial-gradient の一層で、スクリプトがリアルタイムに書き込む --glass-mx / --glass-my を読みます。ノードを増やさず、スタッキングコンテキストにも触れず、カードのぼかしも邪魔しません。ライトテーマで使うのは白ではなく冷たい青白です:白いカード(rgb 229~245)に白を重ねても最大 6 段階しか上がらず、目には見えません.page-head の下パディングを 30px から 160px にしました(全体で約 317px)。白いカードの列がまるごと下がり、アバター・名前・レベルバッジがバナー画像の上に載ります —— これが「背景を見せる」です。高さだけを変え、内容は増やしていません。小さい画面では 72px に縮みます。内容をまとめて下げなかったのは、上部の最も暗いマスクが無駄になり、白くした行が読みにくくなるからですcubic-bezier(.34, 1.56, .64, 1) で戻ります —— 第二制御点の y = 1.56 > 1 なので、曲線は終点を通り越してから戻ります。あの「跳ね」がこれです。純粋な CSS で、JS も物理エンジンも使いませんprefers-reduced-motion のフォールバックは「自律的な動き」だけを抑える形に変えました:ボタンのバネ(離したあとに勝手に跳ねる=自律的な動き)は普通の短いトランジションになり、押した感触は残ります。一方でポインタのハイライトは残します —— ポインタ追従は直接操作であり、動くのはポインタ自身でページではありません。站長のリキッドグラス資料にも「displacement を外し、blur + ハイライトは残す」と書かれています。そもそもこの機械で唯一ハイライトを見られる方法でもあります:Windows のアニメーション効果はオフで(MinAnimate = 0 / DragFullWindows = 0 / VisualFXSetting = 2)、ブラウザはそれを正直に reduce として報告します —— 一緒に切ってしまうと永久に見えません$pubBgCss !== '' の中です)。それ以外のページ —— バナーのないプロフィールを含む —— は1 バイトも変わっていません。テストスイートにはこれを守る assertion が 4 本ありますbody に background-attachment: fixed で載せていました。この指定は「画像をビューポートに固定する」という意味で、独立したコンポジットレイヤーではありません —— ブラウザはカードの backdrop-filter のために毎フレームそれを再サンプリングする必要があり、サンプリング範囲とスクロール位置がずれると色が飛びます。さらにカードは動き画像は動かないため、半透明のカードは写真全体をなぞってしまいます。この二つが重なって「濃いときもあれば薄いときもあり、正常なときもある」になっていましたbody から専用の position: fixed レイヤー(body::before、z-index: -1、pointer-events: none、will-change: transform)へ移しました。専用レイヤーはコンポジットレイヤーに昇格でき、スクロール中ずっとサンプリング元がすでに合成済みの一枚のビットマップになります--glass-blur --glass-sat --glass-highlight --glass-displacement --glass-noise)。正直な補足:本来の SVG feDisplacementMap による屈折は実現できません —— Chromium と Safari の backdrop-filter はフィルタ関数のみを受け付け、url(#svgfilter) は受け付けないため、内側の屈折面取りでその見た目を近似していますtext-shadow 白ハローを外しました —— カードが安定した今は役に立たず、12px の文字の字画を食べるだけですbackground-attachment: fixed を使っており、画像がビューポートに固定されてカードだけがスクロールします —— そのため半透明のカードは写真全体を「なぞって」しまい、暗い空の上では暗く、明るい建物の上では白く飛びます。同じカードがスクロール位置によって rgb(99,107,125) から rgb(201,197,200) まで、100 段階も変動していました/players/zlc)はこのガラス用スタイルをそもそも出力しないため、1 バイトも変わっていませんtext-shadow)を足しました —— 下地が明るいときは見えず、暗いときだけ浮かび上がるので、文字が自分の局所的な下地を持っているのと同じです。これがあるから 34% まで踏み込めますsaturate(180%) と brightness(1.12) を追加しました。アップル風のガラスは背後の色を拾って少し持ち上げます。ぼかすだけではただのすりガラスです00000000-0000-0000-0009-… というプレースホルダー領域で、MOD が報告できるのは「名前」だけ —— その瞬間の名前がたまたまその UUID だったのです。実体は birdzhonghuifei が統合版で遊んでいた期間で、本人の行に統合しましたbirdzhonghuifei の数字はより完全になりました‹ を押して 1 か月ずつめくる必要はもうありません。前後ボタンと「今日」もそのままで、めくるとドロップダウンも一緒に動きますTrChat プラグインのログは 2023-09-01 からしか記録されておらず、2024 年後半には欠けている期間がありました。未取り込みだった旧サーバーの CoreProtect データベース 3 つに 2024-07〜2024-12 のチャットが 34,417 件残っており、重複を除いた結果 229 件の発言 を復元しました(37 日分、最も古いものは 2024-07-11)TrChat と CoreProtect の両方に記録され、タイムスタンプは通常 1 秒ずれ、時には分をまたぎます。分単位で比較するとその数十件を新規発言として二重に取り込んでしまいますTrChat がほとんどの会話を記録しており、戻ってきたのは取りこぼされたぽつぽつとした数行です。2024 年 7〜12 月のこれらの日を開くと、当時の会話がより完全に見られますWinter で検索すれば、Fruity_oxygen と並んで自分の数値がすぐ見えます。誰の行に隠れているかを推測する必要はありません。ついでに古い不具合も修正しました:プレイヤー名で並べ替えるとヘッダーが本文より 1 列少なくなり、表全体がずれていましたFruity_oxygen と Winter が 1 行、ElfinLettuc と Faithe が 1 行)。アカウントを連携していない人は各自 1 行のままです。名前の横の「N キャラ」バッジで、誰がどこにまとまったかを確認できます — 以前はメインとサブが別の行に分かれ、サブのプレイ時間が無駄に見えていました/accounts/番号)を新設しました。名下の各キャラクターを個別に並べ、それぞれのプレイ時間とログイン回数が分かります。上部の集計値はそれらの合計です。このページは完全公開で、ログインなしで閲覧できます。あわせて、存在しないアカウント番号を指していた 1 件の不整合データも掃除しましたwwwsum は 2024-08-22、7Strawberry は 2024-03-07 と正しく表示され、ログイン回数の合計は 291 から 21,766 になりました日付はそれぞれのバージョンの公開日です。新しい問題を見つけたら、掲示板で知らせるか、サーバー管理者に直接ご連絡ください。