{% include '@style-variables' -%}
{% include '@self-resources' %}

<div class="wrapper">
    <section krt-if="state == 1">
        <div class="card">
            <div class="card-body">

                <!-- 閉じるボタン -->
                <button type="button" class="btn btn-close karte-close"
                        aria-label="閉じる"
                    >
                    <i class="icon #{style.closeIcon}" aria-hidden="true"></i>
                </button>

                <!-- 画像 -->
                <figure class="card-image _fit-card">
                    <img
                        src="#{image}"
                        alt=""
                    >
                </figure>

                <!-- 見出し -->
                <h1 class="card-heading text-center">
                    #{heading|safe}
                </h1>

                <!-- 詳細テキスト -->
                <p class="card-detail">
                    #{detail|safe}
                </p>

                <!-- ボタン -->
                <div class="card-button">
                    <ul class="button-block">
                        <li>
                            <a class="btn _fit-width"
                                    href="#{btnLink}"
                                >
                                #{btnLabel}
                            </a>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </section>
</div>
  • URL: /components/raw/card-03/style.css
  • Content:
    /* ベース */
    figure { margin: 0 }
    img {
        max-width: 100%;
        vertical-align: bottom;
    }
    button {
        margin: 0;
        width: auto;
        height: auto;
        font-family: inherit;
        cursor: pointer;
    }
    button * { cursor: inherit }
    .wrapper {
        position: relative;
        height: 100%;
        text-align: left;
        font-size: 12px;
        line-height: 1.66667;
    }
    .wrapper * {
        box-sizing: border-box;
        white-space: inherit;
        font-size: 100%;
        line-height: inherit;
    }
    
    /* ボタン */
    .icon-close { composes: #{closeIcon} }
    .btn {
        transition: .2s;
        display: inline-block;
        border-radius: 4px;
        border: solid 1px transparent;
        padding: 13px 16px;
        background: #{style.colorMain};
        color: #fff;
        vertical-align: middle;
        text-decoration: none;
        text-align: center;
        line-height: 1.25;
    }
    .btn:hover,
    .btn:focus { opacity: .75 }
    .btn._fit-width { width: 100% }
    
    /* 閉じるボタン */
    .btn-close {
        position: absolute;
        z-index: 1;
        border-radius: 50%;
        line-height: 1;
        transition: .25s;
        top: 7px;
        right: 7px;
        padding: 6px;
        background: 0;
        color: #{style.closeColor};
    }
    .btn-close:hover,
    .btn-close:focus {
        opacity: .5;
        -webkit-transform: rotate(90deg);
                transform: rotate(90deg);
    }
    .btn-close .icon {
        display: inline-block;
        vertical-align: top;
    }
    
    /* ボタンブロック */
    .button-block li { list-style: none }
    .button-block.columns > li {
        -webkit-flex-basis: calc(~"25% - 10px");
                flex-basis: calc(~"25% - 10px");
    }
    .button-block:not(.columns) li + li { margin-top: 10px }
    
    /* カラム */
    .columns {
        display: -webkit-flex;
        display: flex;
        -webkit-flex-wrap: wrap;
                flex-wrap: wrap;
        margin: -10px 0 0 -10px;
    }
    .columns > li {
        -webkit-flex-grow: 1;
                flex-grow: 1;
        margin: 10px 0 0 10px;
    }
    .columns > li { list-style: none }
    .card .columns > li {
        -webkit-flex-basis: calc(~"25% - 10px");
                flex-basis: calc(~"25% - 10px");
    }
    
    /* カード */
    .card {
        display: -webkit-flex;
        display: flex;
        -webkit-flex-direction: column;
                flex-direction: column;
        box-shadow: 0 5px 16px rgba(0,0,0,.05), 0 8px 14px rgba(0,0,0,.08);
        border-radius: 8px;
        width: 320px;
        max-width: 90vw;
        max-height: calc(~"100vh - 160px");
        overflow-y: auto;
        background: #{style.colorBg} no-repeat 50%;
        background-size: cover;
        color: #{style.colorText};
    }
    .card-body { padding: 18px 20px 0 }
    .card-body::after {
        display: block;
        height: 18px;
        content: "";
        position: relative;
        z-index: -1;
    }
    .card-body {
        position: relative;
        overflow: inherit;
    }
    .card ._fit-card {
        margin-left: -20px;
        margin-right: -20px;
    }
    
    /* - 画像 */
    .card-image {
        margin: 0 auto;
        text-align: center;
    }
    .card-image:not(:last-child) { margin-bottom: 12px }
    .card-image._fit-card { margin-top: -18px }
    
    /* - 見出し */
    .card-heading {
        color: #{style.colorMain};
        font-weight: 600;
        font-size: 16px;
        line-height: 1.375;
    }
    .card-heading:not(:last-child) { margin-bottom: .5em }
    
    /* - 詳細テキスト */
    .card-detail:not(:last-child) { margin-bottom: 12px }
    
    /* - ボタン */
    .card-button:not(:first-child) { margin-top: 16px }
    
    /* ユーティリティ */
    .text-center { text-align: center !important }
    
  • URL: /components/raw/card-03/variables.csv
  • Content:
    name,folder,folder_name,label,data_type,value,preview_value,help,is_required,is_hidden
    colorMain,style,スタイル,メインカラー,color,#333,,,,
    colorText,style,スタイル,テキストカラー,color,#333,,,,
    colorBg,style,スタイル,背景カラー,color,#fff,,,,
    closeIcon,style,スタイル,閉じるアイコン,icon,krt-icon-close05,,,,1
    closeColor,style,スタイル,閉じるアイコン カラー,color,#fff,,,,
    image,,,画像,image,https://img-karte-io.s3.amazonaws.com/image/5a324a7ab4acdb3772c73232::sample-header.png,,,,
    heading,,,見出し,text,ワークショップを開催します,,,,
    detail,,,詳細テキスト,text,"大人気 “焙煎体験セミナー” に加え、 “エアロプレスセミナー 初級編” も開催します!
    よりステップアップしたい方にオススメです!",,,,
    btnLabel,,,ボタン ラベル,text,詳細を確認する,,,,
    btnLink,,,ボタン リンク先,text,https://example.com/,,,,