Ignite UI for Blaozr の日付ピッカーコンポーネント IgbDatePicker は、既定では、下図のとおり、IgbInput などの他の入力系のコンポーネントと外観が異なっています (例えば、ライトモードの bootstrap テーマが使用されている状態で、枠線で囲まれていない / フォーカス取得時に青いグロー表示効果が適用されない)。

(上から順に: IgbInput, IgbDateTimeInput, IgbDatePicker)

この IgbDatePicker の見た目を、他の入力系のコンポーネントと同じに揃えるには、以下の CSS スタイル定義を適用します。

/* 不要なパディングを削除 */
igc-date-picker > div > div > div:nth-of-type(2) {
    padding-top: 0 !important;
}

/* 標準の下線を削除 */
igc-date-picker > div > div > div:nth-of-type(3) {
    visibility: hidden;
}

/* 新たな枠線スタイルを設定 */
igc-date-picker {
    border: 1px solid var(--ig-input-border-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));
    border-radius: var(--ig-input-border-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2) * 1.25rem), 1.25rem));
    padding-inline: max(var(--is-large, 1) * max(16px, -1 * 16px) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, --ig-spacing)), var(--is-medium, 1) * max(12px, -1 * 12px) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, --ig-spacing)), var(--is-small, 1) * max(8px, -1 * 8px) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, --ig-spacing)));
    padding-block: max(var(--is-large, 1) * max(8px, -1 * 8px) * var(--ig-spacing-block-large, var(--ig-spacing-block, --ig-spacing)), var(--is-medium, 1) * max(6px, -1 * 6px) * var(--ig-spacing-block-medium, var(--ig-spacing-block, --ig-spacing)), var(--is-small, 1) * max(4px, -1 * 4px) * var(--ig-spacing-block-small, var(--ig-spacing-block, --ig-spacing)));
    transition: box-shadow 0.15s ease-out 0s, border 0.15s ease-out 0s, -webkit-box-shadow 0.15s ease-out 0s;
}

    /* 日付ピッカー内部の input 要素のサイズを調整 */
    igc-date-picker input {
        font-size: 1rem !important;
        font-family: var(--ig-font-family) !important;
        height: 24px !important;
    }

        /* 日付ピッカー内部の input 要素がフォーカスをもった場合や、カレンダーがポップアップしたときの表示を設定 */
        igc-date-picker input:focus {
            color: var(--ig-input-input-prefix-color--focused, hsla(var(--ig-gray-900), var(--ig-gray-a)));
        }

    igc-date-picker:has(input:focus-within),
    igc-date-picker:has(input[aria-expanded='true']) {
        border-color: var(--ig-input-focused-border-color, hsla(var(--ig-primary-500), var(--ig-primary-a)));
        box-shadow: 0 0 0 0.25rem var(--ig-input-focused-secondary-color, hsla(var(--ig-primary-500), 0.38));
    }

すると下図のように、IgbDatePicker の外観が、他の入力系のコンポーネントと同様の見た目に揃います。

IgbDatePicker がフォーカスを取得した場合や、カレンダーがポップアップしたときの、青枠のグロー表示効果も適用されます (下図)。

下記リンク先のデモンストレーションサイトで、実際の動作を見ることができます。

https://igjp-kb-blazor.github.io/KB11644_IgbDatePicker_Apperance/

なお、ここで紹介した CSS スタイル定義は、ライトモードの bootstrap テーマを使用している場合をのみ想定しています。fluent や indigo、material といったその他のテーマや、ダークモードについては考慮されていませんので、その点はくれぐれもご注意ください。

Tagged:

製品について

Ignite UI for Blazor