구성 요소 알림을 Notifications 구성 요소

Notifications 구성 요소

바우하우스(Bauhaus)에서 영감을 받은 요소로 스타일링된 복잡하고 반응형 알림 구성 요소로, 문서 또는 위키 사이트에 적합하며 다크 모드를 지원합니다.

미리 보기

HTML 코드

<div class="font-sans text-gray-800 bg-gray-50 dark:bg-gray-900 dark:text-gray-100 p-4 sm:p-8 md:p-12 min-h-screen">
  <div class="mx-auto max-w-4xl bg-white dark:bg-gray-800 shadow-md rounded-lg overflow-hidden border border-gray-200 dark:border-gray-700">

    <!-- Header -->
    <div class="relative p-4 md:p-6 bg-gray-100 dark:bg-gray-700 border-b border-gray-200 dark:border-gray-600 flex justify-between items-center">
      <h2 class="text-2xl font-bold text-gray-900 dark:text-gray-100">Notifications</h2>
      <button aria-label="Mark all as read" class="text-sm text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50 transition-colors duration-200">
        Mark all as read
      </button>
      <div class="absolute top-0 left-0 w-full h-1 bg-yellow-500 dark:bg-yellow-400"></div>
    </div>

    <!-- Navigation / Filters -->
    <div class="flex border-b border-gray-200 dark:border-gray-600">
      <button class="flex-1 py-3 px-4 text-sm font-medium text-center text-gray-700 dark:text-gray-300 border-b-2 border-yellow-500 dark:border-yellow-400 bg-white dark:bg-gray-800 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50 transition-colors duration-200">
        All (4)
      </button>
      <button class="flex-1 py-3 px-4 text-sm font-medium text-center text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50 transition-colors duration-200">
        Unread (2)
      </button>
      <button class="flex-1 py-3 px-4 text-sm font-medium text-center text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50 transition-colors duration-200">
        Archived (0)
      </button>
    </div>

    <!-- Notification List -->
    <div class="divide-y divide-gray-200 dark:divide-gray-700">

      <!-- Notification Item 1 (Unread, Alert) -->
      <div class="relative p-4 md:p-6 bg-yellow-50 dark:bg-gray-700 hover:bg-yellow-100 dark:hover:bg-gray-600 transition-colors duration-200">
        <div class="flex items-start">
          <span class="flex-shrink-0 mr-4 text-yellow-600 dark:text-yellow-400">
            <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path>
            </svg>
          </span>
          <div class="flex-grow">
            <div class="flex justify-between items-baseline mb-1">
              <h3 class="text-lg font-semibold text-gray-900 dark:text-gray-100">System Maintenance Alert</h3>
              <time datetime="2023-10-27T10:00:00Z" class="text-xs text-gray-500 dark:text-gray-400">5 min ago</time>
            </div>
            <p class="text-gray-700 dark:text-gray-300 mb-2">Scheduled maintenance for our knowledge base will occur on Nov 1st. Expect brief downtime.</p>
            <a href="#" class="inline-block text-sm text-blue-600 dark:text-blue-400 hover:underline hover:text-blue-800 dark:hover:text-blue-300 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50">Read more details</a>
          </div>
        </div>
        <div class="absolute top-2 right-2">
          <span aria-label="Unread indicator" class="block w-3 h-3 bg-blue-500 dark:bg-blue-400 rounded-full"></span>
        </div>
      </div>

      <!-- Notification Item 2 (Unread, New Feature) -->
      <div class="relative p-4 md:p-6 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors duration-200">
        <div class="flex items-start">
          <span class="flex-shrink-0 mr-4 text-green-600 dark:text-green-400">
            <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path>
            </svg>
          </span>
          <div class="flex-grow">
            <div class="flex justify-between items-baseline mb-1">
              <h3 class="text-lg font-semibold text-gray-900 dark:text-gray-100">New Feature: Advanced Search Filters</h3>
              <time datetime="2023-10-26T15:30:00Z" class="text-xs text-gray-500 dark:text-gray-400">1 day ago</time>
            </div>
            <p class="text-gray-700 dark:text-gray-300 mb-2">We've rolled out new filters to help you find documentation faster. Try them out!</p>
            <div class="relative w-full h-32 mb-2 bg-gray-200 dark:bg-gray-700 rounded-md overflow-hidden">
                 <img src="https://picsum.photos/400/200?random=1" alt="New feature screenshot" class="absolute inset-0 w-full h-full object-cover" />
            </div>
            <div class="flex space-x-2">
              <a href="#" class="inline-block text-sm text-blue-600 dark:text-blue-400 hover:underline hover:text-blue-800 dark:hover:text-blue-300 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50">View demo</a>
              <a href="#" class="inline-block text-sm text-gray-600 dark:text-gray-400 hover:underline hover:text-gray-800 dark:hover:text-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50">Give feedback</a>
            </div>
          </div>
        </div>
        <div class="absolute top-2 right-2">
          <span aria-label="Unread indicator" class="block w-3 h-3 bg-blue-500 dark:bg-blue-400 rounded-full"></span>
        </div>
      </div>

      <!-- Notification Item 3 (Read, User Activity) -->
      <div class="p-4 md:p-6 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors duration-200">
        <div class="flex items-start">
          <div class="flex-shrink-0 mr-4 rounded-full overflow-hidden w-9 h-9">
              <img src="https://randomuser.me/api/portraits/men/5.jpg" alt="User avatar" class="w-full h-full object-cover" />
          </div>
          <div class="flex-grow">
            <div class="flex justify-between items-baseline mb-1">
              <h3 class="text-lg font-semibold text-gray-900 dark:text-gray-100">John Doe commented on 'Getting Started'</h3>
              <time datetime="2023-10-25T09:00:00Z" class="text-xs text-gray-500 dark:text-gray-400">2 days ago</time>
            </div>
            <p class="text-gray-700 dark:text-gray-300">"Great article! I found the section on initial setup particularly helpful."</p>
            <a href="#" class="inline-block text-sm text-blue-600 dark:text-blue-400 hover:underline hover:text-blue-800 dark:hover:text-blue-300 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50">Reply to comment</a>
          </div>
        </div>
      </div>

      <!-- Notification Item 4 (Read, Article Update) -->
      <div class="p-4 md:p-6 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors duration-200">
        <div class="flex items-start">
          <span class="flex-shrink-0 mr-4 text-blue-600 dark:text-blue-400">
            <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-2.414-2.414A1 1 0 0015.586 6H9m-6 0h.01M6 21v-7a3 3 0 013-3h.482m-.509 5.867 2.1-2.101M16 17a2 2 0 100 4 2 2 0 000-4z"></path>
            </svg>
          </span>
          <div class="flex-grow">
            <div class="flex justify-between items-baseline mb-1">
              <h3 class="text-lg font-semibold text-gray-900 dark:text-gray-100">Article Updated: 'Troubleshooting FAQ'</h3>
              <time datetime="2023-10-24T18:00:00Z" class="text-xs text-gray-500 dark:text-gray-400">3 days ago</time>
            </div>
            <p class="text-gray-700 dark:text-gray-300">The 'Troubleshooting FAQ' article has been updated with new solutions for common issues.</p>
            <a href="#" class="inline-block text-sm text-blue-600 dark:text-blue-400 hover:underline hover:text-blue-800 dark:hover:text-blue-300 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50">View updated article</a>
          </div>
        </div>
      </div>

    </div>

    <!-- Footer / CTA -->
    <div class="p-4 md:p-6 bg-gray-100 dark:bg-gray-700 border-t border-gray-200 dark:border-gray-600 flex justify-center items-center">
      <button aria-label="View all notifications" class="text-blue-600 dark:text-blue-400 hover:underline hover:text-blue-800 dark:hover:text-blue-300 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50 transition-colors duration-200">
        View all notifications
      </button>
      <div class="absolute bottom-0 right-0 w-1 h-32 bg-yellow-500 dark:bg-yellow-400 hidden sm:block"></div>
    </div>

  </div>
</div>

관련 구성 요소

Notifications 구성 요소

Notifications 구성 요소는 비즈니스/기업 웹 애플리케이션에 맞게 조정된 단색 색 구성표의 glassmorphism 디자인을 특징으로 합니다. 이 구성 요소에는 다양한 대화형 요소가 포함되어 있으며 다크 모드를 지원합니다.

열다

Notifications 구성 요소

Tailwind CSS로 구축된 생생한 색 구성표, 복잡한 인터페이스, 반응형 디자인 및 어두운 테마 지원을 갖춘 전자 상거래를 위한 Skeuomorphic Notifications 구성 요소입니다.

열다

Notifications 구성 요소

Neumorphic Notifications Component는 회색조 색 구성표와 중간 정도의 복잡성을 가지며 블로그/콘텐츠 소비를 위해 설계되었습니다. 반응형이며 어두운 테마를 지원합니다.

열다