レトロで視覚的に魅力的なアイキャッチテンプレート

image0

このテーマの特徴

このHTMLテンプレートは、レトロな雰囲気を持つアイキャッチ用のテンプレートです。主な特徴は以下の通りです。

1. レトロな雰囲気を醸し出すデザイン

  • フォント: "Noto Sans CJK JP" を使用し、レトロな雰囲気と現代的なバランスを保ちます。
  • カラーパレット: 薄いピンクとグレーを基調とし、アクセントカラーとして薄いパープルを使用することで、懐かしさと上品さを演出しています。
  • グラデーション: ヘッダーに薄いピンクから薄いグレーへのグラデーションを適用することで、奥行きとレトロな雰囲気を強調しています。
  • 影と枠線: ヘッダー、メインコンテンツ、カテゴリーラベルに影や枠線を使用することで、レトロなポスターやチラシのような立体感とノスタルジックな印象を与えています。
  • アイコン: レトロな雰囲気のSVGアイコンを使用することで、視覚的なアクセントを加えています。

2. 可読性と視認性を重視したレイアウト

  • シンプルな構造: ヘッダー、メインコンテンツ、フッターの3つのセクションに分け、情報の整理と視認性を高めています。
  • 適切な余白: 各要素間に適切な余白を設けることで、視覚的なバランスを保ち、読者の視線を誘導しています。
  • 文字サイズと行間: メインタイトル、カテゴリー、記事タイトルの文字サイズと行間を調整することで、情報を読みやすくしています。
  • 文字の切り詰め: タイトルが長くなった場合、省略記号で適切に切り詰めることで、レイアウトの崩れを防ぎ、可読性を維持しています。

3. カスタマイズしやすい構造

  • CSS変数: カラーやフォント、サイズなどをCSS変数で定義することで、簡単にデザインを変更できます。
  • クラス名: 各要素にわかりやすいクラス名を設定することで、CSSによるスタイルの変更やJavaScriptによる操作を容易に行えます。
  • カテゴリー対応: category-{FirstCategory} のようにカテゴリーに合わせたスタイルを適用することが可能です。

4. SEOに配慮した記述

  • meta charset: UTF-8 を指定することで、日本語などの多言語に対応しています。
  • 言語指定: lang="{BlogLanguage}" で言語を指定することで、検索エンジンの理解を助けます。
  • 画像のalt属性: 画像にalt属性を記述することで、画像が表示されない場合でも内容を理解できるようにしています。

その他:

  • テンプレートは、ブログ記事などのアイキャッチ画像として使用することを想定しています。
  • テンプレートに独自の画像やテキスト、コードなどを追加することで、さらに個性的なアイキャッチを作成できます。

このテンプレートは、レトロな雰囲気で、かつ可読性とカスタマイズ性に優れたデザインとなっているため、様々なブログやウェブサイトで活用できます。

ソースコード

<!DOCTYPE html>
<html lang="{BlogLanguage}">
  <head>
    <meta charset="utf-8">
    <style>
      :root {
        --bg-main: #F5F5F5; /* 薄いグレー */
        --bg-secondary: #D8BFD8; /* 薄いピンク */
        --text-main: #333; /* ダークグレー */
        --text-accent: #663366; /* 薄いパープル */
        --border-color: #ccc; /* 薄いグレー */
        --content-rounded: 16px;
        --font-retro: 'Noto Sans CJK JP', sans-serif;
        --font-modern: 'Noto Sans CJK JP', sans-serif;
      }
      * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
      }
      body {
        background-color: var(--bg-secondary);
        color: var(--text-main);
        font-family: var(--font-retro);
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        padding: 24px 24px;
        line-height: 1.4;
        word-break: break-word;
      }
      /* カテゴリによるカスタマイズ */
      body.category-日記 {
        background-color: #F0F0F0; /* 薄いグレー */
      }

      /* コンテンツ部分の共通設定 */
      body > div {
        background-color: var(--bg-main);
        border: 1px solid var(--border-color);
        padding: 24px;
      }
      body > div:first-child {
        border-radius: var(--content-rounded) var(--content-rounded) 0 0;
      }
      body > div:last-child {
        border-radius: 0 0 var(--content-rounded) var(--content-rounded);
      }
      /* ヘッダーの設定 */
      .header {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        padding-top: 18px;
      }
      .header > :first-child {
        margin-left: 24px;
      }
      .header > :last-child {
        margin-right: 24px;
      }
      .header .base {
        display: flex;
        flex-direction: row;
        align-items: center;
      }
      .icon > svg, .icon > img {
        border-radius: 50%;
        width: 64px;
        margin-right: 12px;
      }
      .blog-title {
        max-width: 60%;
        font-family: var(--font-modern);
      }
      .blog-title .title {
        font-size: 48px;
        font-weight: bold;
        color: var(--text-main);
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
      }
      .spacer {
        flex-grow: 1;
      }
      .category {
        display: flex;
        justify-content: center;
        gap: 15px;
        max-width: 25%;
      }
      .category span {
        display: block;
        padding: 2px 12px;
        border-radius: 8px;
        background-color: var(--text-accent);
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        font-size: 30px;
        line-height: 1.3;
        font-weight: bold;
        color: var(--bg-main);
        font-family: var(--font-modern);
      }
      .category span:empty {
         display:none;
      }

      /* メインコンテンツの設定 */
      .main-wrapper {
        flex: 1;
        width: 100%;
        display:flex;
        padding-bottom: 56px;
      }
      .main {
        width: 75%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        margin: 20px auto 8px;
        overflow: hidden;
        text-align: center;
      }
      .entry-title {
        display: -webkit-box;
        -webkit-line-clamp: 4;
        line-clamp: 4;
        -webkit-box-orient: vertical;
        overflow: hidden;
        overflow-wrap : break-word;
        word-break: auto-phrase;
        color: var(--text-main);
        font-size: 56px;
        line-height: 1.3;
        font-weight: bold;
        font-family: var(--font-modern);
      }

      /* レトロな雰囲気を出すための装飾 */
      .header, .main {
        /* 影の追加 */
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
      }
      .header {
        background-image: linear-gradient(to bottom, #D8BFD8, #F5F5F5); /* 背景にグラデーション */
      }
      .category span {
        /* 枠線の追加 */
        border: 1px solid var(--border-color);
      }
      .entry-title {
        /* 文字に影 */
        text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
      }
    </style>
  </head>
  <body class="category-{FirstCategory}">
    <div class="header">
      <div class="icon">
        <svg xmlns="http://www.w3.org/2000/svg" width="90" height="90" viewBox="0 0 90 90">
          <!-- レトロな雰囲気のアイコンを挿入 -->
          <path d="M45,90A45,45,0,1,1,90,45,45.05,45.05,0,0,1,45,90ZM45,5.723A39.278,39.278,0,1,0,84.281,45,39.322,39.322,0,0,0,45,5.723Z" fill="#333"></path>
          <path d="M50.241,22.78a63.54,63.54,0,0,1-4.22-11.3V43.349a2.938,2.938,0,1,1-1.879-.051V11.442A63.6,63.6,0,0,1,39.914,22.78a115.111,115.111,0,0,1-7.739,13.113l2.746,37.579s2.61,2.913,10.151,2.916h.01c7.54,0,10.151-2.916,10.151-2.916l2.746-37.579A115.02,115.02,0,0,1,50.241,22.78Z" fill="#333"></path>
        </svg>
      </div>
      <div class="blog-title">
        <div class="title">{BlogTitle}</div>
      </div>
      <div class="spacer"></div>
      <div class="category">
        <span>{FirstCategory}</span>
      </div>
    </div>
    <div class="main-wrapper">
      <div class="main">
        <div class="entry-title">{Title}</div>
      </div>
    </div>
  </body>
</html>