flowbite-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +324 -0
  3. package/build/index.js +975 -0
  4. package/build/server-runner.js +228 -0
  5. package/data/components/accordion.md +860 -0
  6. package/data/components/alerts.md +739 -0
  7. package/data/components/avatar.md +178 -0
  8. package/data/components/badge.md +420 -0
  9. package/data/components/banner.md +145 -0
  10. package/data/components/bottom-navigation.md +513 -0
  11. package/data/components/breadcrumb.md +273 -0
  12. package/data/components/button-group.md +410 -0
  13. package/data/components/buttons.md +405 -0
  14. package/data/components/card.md +711 -0
  15. package/data/components/carousel.md +858 -0
  16. package/data/components/chat-bubble.md +1063 -0
  17. package/data/components/clipboard.md +1029 -0
  18. package/data/components/datepicker.md +673 -0
  19. package/data/components/device-mockups.md +152 -0
  20. package/data/components/drawer.md +1353 -0
  21. package/data/components/dropdowns.md +1925 -0
  22. package/data/components/footer.md +299 -0
  23. package/data/components/forms.md +371 -0
  24. package/data/components/gallery.md +322 -0
  25. package/data/components/indicators.md +262 -0
  26. package/data/components/jumbotron.md +213 -0
  27. package/data/components/kbd.md +217 -0
  28. package/data/components/list-group.md +365 -0
  29. package/data/components/mega-menu.md +558 -0
  30. package/data/components/modal.md +1309 -0
  31. package/data/components/navbar.md +1053 -0
  32. package/data/components/pagination.md +472 -0
  33. package/data/components/popover.md +826 -0
  34. package/data/components/progress.md +95 -0
  35. package/data/components/qr-code.md +280 -0
  36. package/data/components/rating.md +323 -0
  37. package/data/components/sidebar.md +1067 -0
  38. package/data/components/skeleton.md +221 -0
  39. package/data/components/speed-dial.md +1270 -0
  40. package/data/components/spinner.md +222 -0
  41. package/data/components/stepper.md +271 -0
  42. package/data/components/tables.md +3127 -0
  43. package/data/components/tabs.md +808 -0
  44. package/data/components/timeline.md +304 -0
  45. package/data/components/toast.md +341 -0
  46. package/data/components/tooltips.md +524 -0
  47. package/data/components/typography.md +269 -0
  48. package/data/components/video.md +95 -0
  49. package/data/forms/checkbox.md +375 -0
  50. package/data/forms/file-input.md +98 -0
  51. package/data/forms/floating-label.md +185 -0
  52. package/data/forms/input-field.md +222 -0
  53. package/data/forms/number-input.md +1099 -0
  54. package/data/forms/phone-input.md +577 -0
  55. package/data/forms/radio.md +315 -0
  56. package/data/forms/range.md +83 -0
  57. package/data/forms/search-input.md +280 -0
  58. package/data/forms/select.md +259 -0
  59. package/data/forms/textarea.md +155 -0
  60. package/data/forms/timepicker.md +732 -0
  61. package/data/forms/toggle.md +176 -0
  62. package/data/plugins/charts.md +2683 -0
  63. package/data/plugins/datatables.md +1922 -0
  64. package/data/plugins/datepicker.md +5 -0
  65. package/data/plugins/wysiwyg.md +2377 -0
  66. package/data/quickstart.md +169 -0
  67. package/data/theme.md +231 -0
  68. package/data/toc.md +79 -0
  69. package/data/typography/blockquote.md +182 -0
  70. package/data/typography/headings.md +174 -0
  71. package/data/typography/hr.md +74 -0
  72. package/data/typography/images.md +168 -0
  73. package/data/typography/links.md +118 -0
  74. package/data/typography/lists.md +387 -0
  75. package/data/typography/paragraphs.md +186 -0
  76. package/data/typography/text.md +249 -0
  77. package/package.json +71 -0
@@ -0,0 +1,1063 @@
1
+ ---
2
+ layout: docs
3
+ title: Tailwind CSS Chat Bubble - Flowbite
4
+ description: Use the chat bubble component to show chat messages in your web application including voice notes, images, galleries and other attachments based on multiple styles and variations
5
+ group: components
6
+ toc: true
7
+ requires_js: true
8
+
9
+ previous: Carousel
10
+ previousLink: components/carousel/
11
+ next: Clipboard
12
+ nextLink: components/clipboard/
13
+ ---
14
+
15
+ The chat bubble component is the building block for creating chat interfaces where users can send messages to each other by text, voice notes, images, galleries and other attachments. These components are usually used in chat applications and social media platforms such as Facebook, Twitter/X, WhatsApp, and more.
16
+
17
+ The examples below provide multiple variations of default, outline, and clean styles coded with the utility classes from Tailwind CSS. Some of the components may require you to include the Flowbite JavaScript to enable the dropdowns and tooltips functionality.
18
+
19
+ ## Default chat bubble
20
+
21
+ Use this example to show a simple chat bubble with a text message, user profile and a timestamp.
22
+
23
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="380" >}}
24
+ <div class="flex items-start gap-2.5">
25
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
26
+ <div class="flex flex-col w-full max-w-[320px] leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-base">
27
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
28
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
29
+ <span class="text-sm text-body">11:46</span>
30
+ </div>
31
+ <p class="text-sm py-2.5 text-body">That's awesome. I think our users will really appreciate the improvements.</p>
32
+ <span class="text-sm text-body">Delivered</span>
33
+ </div>
34
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
35
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
36
+ </button>
37
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
38
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
39
+ <li>
40
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
41
+ </li>
42
+ <li>
43
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
44
+ </li>
45
+ <li>
46
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
47
+ </li>
48
+ <li>
49
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
50
+ </li>
51
+ <li>
52
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
53
+ </li>
54
+ </ul>
55
+ </div>
56
+ </div>
57
+ {{< /example >}}
58
+
59
+ ## Voice note message
60
+
61
+ This example can be used to show a voice note message with control buttons and a dropdown menu.
62
+
63
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="380" >}}
64
+ <div class="flex items-start gap-2.5">
65
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
66
+ <div class="flex flex-col gap-2.5 w-full max-w-[320px] leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-base">
67
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
68
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
69
+ <span class="text-sm text-body">11:46</span>
70
+ </div>
71
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
72
+ <button class="inline-flex self-center items-center text-body hover:text-heading" type="button">
73
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 9v6m4-6v6m7-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"/></svg>
74
+ </button>
75
+ <svg aria-hidden="true" class="w-[145px] md:w-[185px] md:h-[40px] text-fg-brand" viewBox="0 0 185 40" fill="none" xmlns="http://www.w3.org/2000/svg">
76
+ <rect y="17" width="3" height="6" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
77
+ <rect x="7" y="15.5" width="3" height="9" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
78
+ <rect x="21" y="6.5" width="3" height="27" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
79
+ <rect x="14" y="6.5" width="3" height="27" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
80
+ <rect x="28" y="3" width="3" height="34" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
81
+ <rect x="35" y="3" width="3" height="34" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
82
+ <rect x="42" y="5.5" width="3" height="29" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
83
+ <rect x="49" y="10" width="3" height="20" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
84
+ <rect x="56" y="13.5" width="3" height="13" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
85
+ <rect x="63" y="16" width="3" height="8" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
86
+ <rect x="70" y="12.5" width="3" height="15" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
87
+ <rect x="77" y="3" width="3" height="34" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
88
+ <rect x="84" y="3" width="3" height="34" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
89
+ <rect x="91" y="0.5" width="3" height="39" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
90
+ <rect x="98" y="0.5" width="3" height="39" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
91
+ <rect x="105" y="2" width="3" height="36" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
92
+ <rect x="112" y="6.5" width="3" height="27" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
93
+ <rect x="119" y="9" width="3" height="22" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
94
+ <rect x="126" y="11.5" width="3" height="17" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
95
+ <rect x="133" y="2" width="3" height="36" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
96
+ <rect x="140" y="2" width="3" height="36" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
97
+ <rect x="147" y="7" width="3" height="26" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
98
+ <rect x="154" y="9" width="3" height="22" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
99
+ <rect x="161" y="9" width="3" height="22" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
100
+ <rect x="168" y="13.5" width="3" height="13" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
101
+ <rect x="175" y="16" width="3" height="8" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
102
+ <rect x="182" y="17.5" width="3" height="5" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
103
+ <rect x="66" y="16" width="8" height="8" rx="4" fill="currentColor"/>
104
+ </svg>
105
+ <span class="inline-flex self-center items-center text-sm font-medium text-heading">3:42</span>
106
+ </div>
107
+ <span class="text-sm text-body">Delivered</span>
108
+ </div>
109
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="shrink-0 inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
110
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
111
+ </button>
112
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
113
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
114
+ <li>
115
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
116
+ </li>
117
+ <li>
118
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
119
+ </li>
120
+ <li>
121
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
122
+ </li>
123
+ <li>
124
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
125
+ </li>
126
+ <li>
127
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
128
+ </li>
129
+ </ul>
130
+ </div>
131
+ </div>
132
+ {{< /example >}}
133
+
134
+ ## File attachment
135
+
136
+ Use this example to send a file attachment inside a chat bubble with the ability to download the file.
137
+
138
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="380" >}}
139
+ <div class="flex items-start gap-2.5">
140
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Bonnie Green image">
141
+ <div class="flex flex-col gap-1">
142
+ <div class="flex flex-col w-full max-w-[326px] leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-base">
143
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
144
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
145
+ <span class="text-sm text-body">11:46</span>
146
+ </div>
147
+ <div class="flex items-start my-2.5 bg-neutral-tertiary rounded-base p-2">
148
+ <div class="me-1.5">
149
+ <span class="flex items-center gap-2 text-sm font-medium text-heading pb-2">
150
+ <svg fill="none" aria-hidden="true" class="w-5 h-5 shrink-0" viewBox="0 0 20 21">
151
+ <g clip-path="url(#clip0_3173_1381)">
152
+ <path fill="#E2E5E7" d="M5.024.5c-.688 0-1.25.563-1.25 1.25v17.5c0 .688.562 1.25 1.25 1.25h12.5c.687 0 1.25-.563 1.25-1.25V5.5l-5-5h-8.75z"/>
153
+ <path fill="#B0B7BD" d="M15.024 5.5h3.75l-5-5v3.75c0 .688.562 1.25 1.25 1.25z"/>
154
+ <path fill="#CAD1D8" d="M18.774 9.25l-3.75-3.75h3.75v3.75z"/>
155
+ <path fill="#F15642" d="M16.274 16.75a.627.627 0 01-.625.625H1.899a.627.627 0 01-.625-.625V10.5c0-.344.281-.625.625-.625h13.75c.344 0 .625.281.625.625v6.25z"/>
156
+ <path fill="#fff" d="M3.998 12.342c0-.165.13-.345.34-.345h1.154c.65 0 1.235.435 1.235 1.269 0 .79-.585 1.23-1.235 1.23h-.834v.66c0 .22-.14.344-.32.344a.337.337 0 01-.34-.344v-2.814zm.66.284v1.245h.834c.335 0 .6-.295.6-.605 0-.35-.265-.64-.6-.64h-.834zM7.706 15.5c-.165 0-.345-.09-.345-.31v-2.838c0-.18.18-.31.345-.31H8.85c2.284 0 2.234 3.458.045 3.458h-1.19zm.315-2.848v2.239h.83c1.349 0 1.409-2.24 0-2.24h-.83zM11.894 13.486h1.274c.18 0 .36.18.36.355 0 .165-.18.3-.36.3h-1.274v1.049c0 .175-.124.31-.3.31-.22 0-.354-.135-.354-.31v-2.839c0-.18.135-.31.355-.31h1.754c.22 0 .35.13.35.31 0 .16-.13.34-.35.34h-1.455v.795z"/>
157
+ <path fill="#CAD1D8" d="M15.649 17.375H3.774V18h11.875a.627.627 0 00.625-.625v-.625a.627.627 0 01-.625.625z"/>
158
+ </g>
159
+ <defs>
160
+ <clipPath id="clip0_3173_1381">
161
+ <path fill="#fff" d="M0 0h20v20H0z" transform="translate(0 .5)"/>
162
+ </clipPath>
163
+ </defs>
164
+ </svg>
165
+ Flowbite Terms & Conditions
166
+ </span>
167
+ <span class="flex text-xs font-normal text-heading gap-2">
168
+ 12 Pages
169
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="self-center" width="3" height="4" viewBox="0 0 3 4" fill="none">
170
+ <circle cx="1.5" cy="2" r="1.5" fill="#6B7280"/>
171
+ </svg>
172
+ 18 MB
173
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="self-center" width="3" height="4" viewBox="0 0 3 4" fill="none">
174
+ <circle cx="1.5" cy="2" r="1.5" fill="#6B7280"/>
175
+ </svg>
176
+ PDF
177
+ </span>
178
+ </div>
179
+ <div class="inline-flex self-center items-center">
180
+ <button class="text-heading bg-neutral-tertiary box-border border border-transparent hover:bg-neutral-quaternary focus:ring-4 focus:ring-neutral-quaternary font-medium leading-5 rounded-base p-2 focus:outline-none" type="button">
181
+ <svg class="w-5 h-5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 13V4M7 14H5a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-2m-1-5-4 5-4-5m9 8h.01"/></svg>
182
+ </button>
183
+ </div>
184
+ </div>
185
+ <span class="text-sm text-body">Delivered</span>
186
+ </div>
187
+ </div>
188
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
189
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
190
+ </button>
191
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
192
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
193
+ <li>
194
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
195
+ </li>
196
+ <li>
197
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
198
+ </li>
199
+ <li>
200
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
201
+ </li>
202
+ <li>
203
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
204
+ </li>
205
+ <li>
206
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
207
+ </li>
208
+ </ul>
209
+ </div>
210
+ </div>
211
+ {{< /example >}}
212
+
213
+ ## Image attachment
214
+
215
+ This example can be used to show an image attachment with a download button when hovering over.
216
+
217
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="480" >}}
218
+ <div class="flex items-start gap-2.5">
219
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Bonnie Green image">
220
+ <div class="flex flex-col gap-1">
221
+ <div class="flex flex-col w-full max-w-[326px] leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-base">
222
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse mb-2">
223
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
224
+ <span class="text-sm text-body">11:46</span>
225
+ </div>
226
+ <p class="text-sm text-body">This is the new office <3</p>
227
+ <div class="group relative my-2.5">
228
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
229
+ <button data-tooltip-target="download-image" class="inline-flex items-center justify-center rounded-full h-10 w-10 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none focus:ring-white">
230
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
231
+ </button>
232
+ <div id="download-image" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
233
+ Download image
234
+ <div class="tooltip-arrow" data-popper-arrow></div>
235
+ </div>
236
+ </div>
237
+ <img src="/docs/images/blog/image-2.jpg" class="rounded-base" />
238
+ </div>
239
+ <span class="text-sm text-body">Delivered</span>
240
+ </div>
241
+ </div>
242
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
243
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
244
+ </button>
245
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
246
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
247
+ <li>
248
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
249
+ </li>
250
+ <li>
251
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
252
+ </li>
253
+ <li>
254
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
255
+ </li>
256
+ <li>
257
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
258
+ </li>
259
+ <li>
260
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
261
+ </li>
262
+ </ul>
263
+ </div>
264
+ </div>
265
+ {{< /example >}}
266
+
267
+ ## Image gallery
268
+
269
+ Use this example to show an image gallery based on a grid layout with the ability to download images.
270
+
271
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="480" >}}
272
+ <div class="flex items-start gap-2.5">
273
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Bonnie Green image">
274
+ <div class="flex flex-col gap-1">
275
+ <div class="flex flex-col w-full max-w-[326px] leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-base">
276
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse mb-2">
277
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
278
+ <span class="text-sm text-body">11:46</span>
279
+ </div>
280
+ <p class="text-sm text-body">This is the new office <3</p>
281
+ <div class="grid gap-4 grid-cols-2 my-2.5">
282
+ <div class="group relative">
283
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
284
+ <button data-tooltip-target="download-image-1" class="inline-flex items-center justify-center rounded-full h-8 w-8 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
285
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
286
+ </button>
287
+ <div id="download-image-1" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
288
+ Download image
289
+ <div class="tooltip-arrow" data-popper-arrow></div>
290
+ </div>
291
+ </div>
292
+ <img src="/docs/images/blog/image-1.jpg" class="rounded-base" />
293
+ </div>
294
+ <div class="group relative">
295
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
296
+ <button data-tooltip-target="download-image-2" class="inline-flex items-center justify-center rounded-full h-8 w-8 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
297
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
298
+ </button>
299
+ <div id="download-image-2" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
300
+ Download image
301
+ <div class="tooltip-arrow" data-popper-arrow></div>
302
+ </div>
303
+ </div>
304
+ <img src="/docs/images/blog/image-2.jpg" class="rounded-base" />
305
+ </div>
306
+ <div class="group relative">
307
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
308
+ <button data-tooltip-target="download-image-3" class="inline-flex items-center justify-center rounded-full h-8 w-8 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
309
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
310
+ </button>
311
+ <div id="download-image-3" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
312
+ Download image
313
+ <div class="tooltip-arrow" data-popper-arrow></div>
314
+ </div>
315
+ </div>
316
+ <img src="/docs/images/blog/image-3.jpg" class="rounded-base" />
317
+ </div>
318
+ <div class="group relative">
319
+ <button class="absolute w-full h-full bg-brand/90 hover:bg-brand/30 transition-all duration-300 rounded-base flex items-center justify-center">
320
+ <span class="text-xl font-medium text-white">+7</span>
321
+ <div id="download-image" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
322
+ Download image
323
+ <div class="tooltip-arrow" data-popper-arrow></div>
324
+ </div>
325
+ </button>
326
+ <img src="/docs/images/blog/image-1.jpg" class="rounded-base" />
327
+ </div>
328
+ </div>
329
+ <div class="flex justify-between items-center">
330
+ <span class="text-sm text-body">Delivered</span>
331
+ <button class="text-sm text-fg-brand font-medium inline-flex items-center hover:underline">
332
+ <svg class="w-4 h-4 me-1.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
333
+ Save all
334
+ </button>
335
+ </div>
336
+ </div>
337
+ </div>
338
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
339
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
340
+ </button>
341
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
342
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
343
+ <li>
344
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
345
+ </li>
346
+ <li>
347
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
348
+ </li>
349
+ <li>
350
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
351
+ </li>
352
+ <li>
353
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
354
+ </li>
355
+ <li>
356
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
357
+ </li>
358
+ </ul>
359
+ </div>
360
+ </div>
361
+ {{< /example >}}
362
+
363
+ ## URL preview sharing
364
+
365
+ Use this example to show a OG preview of the URL that is being shared inside the chat bubble.
366
+
367
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="520" >}}
368
+ <div class="flex items-start gap-2.5">
369
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
370
+ <div class="flex flex-col w-full max-w-[320px] leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-base">
371
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
372
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
373
+ <span class="text-sm text-body">11:46</span>
374
+ </div>
375
+ <p class="text-sm py-2.5 text-body">Check out this open-source UI component library based on Tailwind CSS:</p>
376
+ <p class="text-sm pb-2.5"><a href="https://github.com/themesberg/flowbite" class="text-fg-brand underline hover:no-underline font-medium break-all">https://github.com/themesberg/flowbite</a></p>
377
+ <a href="#" class="bg-neutral-tertiary rounded-base p-4 mb-2 hover:bg-neutral-quaternary">
378
+ <img src="https://flowbite.com/docs/images/og-image.png" class="rounded-base mb-2" />
379
+ <span class="text-sm font-medium text-heading">GitHub - themesberg/flowbite: The most popular and open source libra ...</span>
380
+ <p class="text-xs text-body font-normal mt-2">github.com</p>
381
+ </a>
382
+ <span class="text-sm text-body">Delivered</span>
383
+ </div>
384
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
385
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
386
+ </button>
387
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
388
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
389
+ <li>
390
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
391
+ </li>
392
+ <li>
393
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
394
+ </li>
395
+ <li>
396
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
397
+ </li>
398
+ <li>
399
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
400
+ </li>
401
+ <li>
402
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
403
+ </li>
404
+ </ul>
405
+ </div>
406
+ </div>
407
+ {{< /example >}}
408
+
409
+ ## Outline chat bubble
410
+
411
+ Use this example to show a text message with the user profile and timestamp outside the chat bubble.
412
+
413
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="370" >}}
414
+ <div class="flex items-start gap-2.5">
415
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
416
+ <div class="flex flex-col gap-1 w-full max-w-[320px]">
417
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
418
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
419
+ <span class="text-sm text-body">11:46</span>
420
+ </div>
421
+ <div class="flex flex-col leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-bas">
422
+ <p class="text-sm text-body"> That's awesome. I think our users will really appreciate the improvements.</p>
423
+ </div>
424
+ <span class="text-sm text-body">Delivered</span>
425
+ </div>
426
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
427
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
428
+ </button>
429
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
430
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
431
+ <li>
432
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
433
+ </li>
434
+ <li>
435
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
436
+ </li>
437
+ <li>
438
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
439
+ </li>
440
+ <li>
441
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
442
+ </li>
443
+ <li>
444
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
445
+ </li>
446
+ </ul>
447
+ </div>
448
+ </div>
449
+ {{< /example >}}
450
+
451
+ ## Outline voice note
452
+
453
+ This example can be used to show a voice note with the user profile and timestamp outside the chat bubble.
454
+
455
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="370" >}}
456
+ <div class="flex items-start gap-2.5">
457
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
458
+ <div class="flex flex-col gap-1">
459
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
460
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
461
+ <span class="text-sm text-body">11:46</span>
462
+ </div>
463
+ <div class="flex flex-col w-full max-w-[320px] leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-base">
464
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
465
+ <button class="inline-flex self-center items-center text-body hover:text-heading" type="button">
466
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 9v6m4-6v6m7-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"/></svg>
467
+ </button>
468
+ <svg aria-hidden="true" class="w-[145px] md:w-[185px] md:h-[40px] text-fg-brand" viewBox="0 0 185 40" fill="none" xmlns="http://www.w3.org/2000/svg">
469
+ <rect y="17" width="3" height="6" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
470
+ <rect x="7" y="15.5" width="3" height="9" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
471
+ <rect x="21" y="6.5" width="3" height="27" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
472
+ <rect x="14" y="6.5" width="3" height="27" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
473
+ <rect x="28" y="3" width="3" height="34" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
474
+ <rect x="35" y="3" width="3" height="34" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
475
+ <rect x="42" y="5.5" width="3" height="29" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
476
+ <rect x="49" y="10" width="3" height="20" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
477
+ <rect x="56" y="13.5" width="3" height="13" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
478
+ <rect x="63" y="16" width="3" height="8" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
479
+ <rect x="70" y="12.5" width="3" height="15" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
480
+ <rect x="77" y="3" width="3" height="34" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
481
+ <rect x="84" y="3" width="3" height="34" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
482
+ <rect x="91" y="0.5" width="3" height="39" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
483
+ <rect x="98" y="0.5" width="3" height="39" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
484
+ <rect x="105" y="2" width="3" height="36" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
485
+ <rect x="112" y="6.5" width="3" height="27" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
486
+ <rect x="119" y="9" width="3" height="22" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
487
+ <rect x="126" y="11.5" width="3" height="17" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
488
+ <rect x="133" y="2" width="3" height="36" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
489
+ <rect x="140" y="2" width="3" height="36" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
490
+ <rect x="147" y="7" width="3" height="26" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
491
+ <rect x="154" y="9" width="3" height="22" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
492
+ <rect x="161" y="9" width="3" height="22" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
493
+ <rect x="168" y="13.5" width="3" height="13" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
494
+ <rect x="175" y="16" width="3" height="8" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
495
+ <rect x="182" y="17.5" width="3" height="5" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
496
+ <rect x="66" y="16" width="8" height="8" rx="4" fill="currentColor"/>
497
+ </svg>
498
+ <span class="inline-flex self-center items-center text-sm font-medium text-heading">3:42</span>
499
+ </div>
500
+ </div>
501
+ <span class="text-sm text-body">Delivered</span>
502
+ </div>
503
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
504
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
505
+ </button>
506
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
507
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
508
+ <li>
509
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
510
+ </li>
511
+ <li>
512
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
513
+ </li>
514
+ <li>
515
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
516
+ </li>
517
+ <li>
518
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
519
+ </li>
520
+ <li>
521
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
522
+ </li>
523
+ </ul>
524
+ </div>
525
+ </div>
526
+ {{< /example >}}
527
+
528
+ ## Outline file attachment
529
+
530
+ Use this example to show a file attachment with the user profile and timestamp outside the chat bubble.
531
+
532
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="380" >}}
533
+ <div class="flex items-start gap-2.5">
534
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
535
+ <div class="flex flex-col gap-1">
536
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
537
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
538
+ <span class="text-sm text-body">11:46</span>
539
+ </div>
540
+ <div class="flex flex-col w-full max-w-[320px] leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-base">
541
+ <div class="flex items-start my-2.5 bg-neutral-tertiary rounded-base p-2">
542
+ <div class="me-1.5">
543
+ <span class="flex items-center gap-2 text-sm font-medium text-heading pb-2">
544
+ <svg fill="none" aria-hidden="true" class="w-5 h-5 shrink-0" viewBox="0 0 20 21">
545
+ <g clip-path="url(#clip0_3173_1381)">
546
+ <path fill="#E2E5E7" d="M5.024.5c-.688 0-1.25.563-1.25 1.25v17.5c0 .688.562 1.25 1.25 1.25h12.5c.687 0 1.25-.563 1.25-1.25V5.5l-5-5h-8.75z"/>
547
+ <path fill="#B0B7BD" d="M15.024 5.5h3.75l-5-5v3.75c0 .688.562 1.25 1.25 1.25z"/>
548
+ <path fill="#CAD1D8" d="M18.774 9.25l-3.75-3.75h3.75v3.75z"/>
549
+ <path fill="#F15642" d="M16.274 16.75a.627.627 0 01-.625.625H1.899a.627.627 0 01-.625-.625V10.5c0-.344.281-.625.625-.625h13.75c.344 0 .625.281.625.625v6.25z"/>
550
+ <path fill="#fff" d="M3.998 12.342c0-.165.13-.345.34-.345h1.154c.65 0 1.235.435 1.235 1.269 0 .79-.585 1.23-1.235 1.23h-.834v.66c0 .22-.14.344-.32.344a.337.337 0 01-.34-.344v-2.814zm.66.284v1.245h.834c.335 0 .6-.295.6-.605 0-.35-.265-.64-.6-.64h-.834zM7.706 15.5c-.165 0-.345-.09-.345-.31v-2.838c0-.18.18-.31.345-.31H8.85c2.284 0 2.234 3.458.045 3.458h-1.19zm.315-2.848v2.239h.83c1.349 0 1.409-2.24 0-2.24h-.83zM11.894 13.486h1.274c.18 0 .36.18.36.355 0 .165-.18.3-.36.3h-1.274v1.049c0 .175-.124.31-.3.31-.22 0-.354-.135-.354-.31v-2.839c0-.18.135-.31.355-.31h1.754c.22 0 .35.13.35.31 0 .16-.13.34-.35.34h-1.455v.795z"/>
551
+ <path fill="#CAD1D8" d="M15.649 17.375H3.774V18h11.875a.627.627 0 00.625-.625v-.625a.627.627 0 01-.625.625z"/>
552
+ </g>
553
+ <defs>
554
+ <clipPath id="clip0_3173_1381">
555
+ <path fill="#fff" d="M0 0h20v20H0z" transform="translate(0 .5)"/>
556
+ </clipPath>
557
+ </defs>
558
+ </svg>
559
+ Flowbite Terms & Conditions
560
+ </span>
561
+ <span class="flex text-xs font-normal text-heading gap-2">
562
+ 12 Pages
563
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="self-center" width="3" height="4" viewBox="0 0 3 4" fill="none">
564
+ <circle cx="1.5" cy="2" r="1.5" fill="#6B7280"/>
565
+ </svg>
566
+ 18 MB
567
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="self-center" width="3" height="4" viewBox="0 0 3 4" fill="none">
568
+ <circle cx="1.5" cy="2" r="1.5" fill="#6B7280"/>
569
+ </svg>
570
+ PDF
571
+ </span>
572
+ </div>
573
+ <div class="inline-flex self-center items-center">
574
+ <button class="text-heading bg-neutral-tertiary box-border border border-transparent hover:bg-neutral-quaternary focus:ring-4 focus:ring-neutral-quaternary font-medium leading-5 rounded-base p-2 focus:outline-none" type="button">
575
+ <svg class="w-5 h-5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 13V4M7 14H5a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-2m-1-5-4 5-4-5m9 8h.01"/></svg>
576
+ </button>
577
+ </div>
578
+ </div>
579
+ </div>
580
+ <span class="text-sm text-body">Delivered</span>
581
+ </div>
582
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
583
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
584
+ </button>
585
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
586
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
587
+ <li>
588
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
589
+ </li>
590
+ <li>
591
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
592
+ </li>
593
+ <li>
594
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
595
+ </li>
596
+ <li>
597
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
598
+ </li>
599
+ <li>
600
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
601
+ </li>
602
+ </ul>
603
+ </div>
604
+ </div>
605
+ {{< /example >}}
606
+
607
+ ## Outline image attachment
608
+
609
+ This example can be used to send an image attachment with the user profile outside the chat bubble.
610
+
611
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="460" >}}
612
+ <div class="flex items-start gap-2.5">
613
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
614
+ <div class="flex flex-col gap-1">
615
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
616
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
617
+ <span class="text-sm text-body">11:46</span>
618
+ </div>
619
+ <div class="flex flex-col w-full max-w-[320px] leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-base">
620
+ <p class="text-sm text-body">I'm working from home today! 😅</p>
621
+ <div class="group relative my-2.5">
622
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
623
+ <button data-tooltip-target="download-image" class="inline-flex items-center justify-center rounded-full h-10 w-10 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
624
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
625
+ </button>
626
+ <div id="download-image" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
627
+ Download image
628
+ <div class="tooltip-arrow" data-popper-arrow></div>
629
+ </div>
630
+ </div>
631
+ <img src="/docs/images/blog/image-1.jpg" class="rounded-base"/>
632
+ </div>
633
+ </div>
634
+ <span class="text-sm text-body">Delivered</span>
635
+ </div>
636
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
637
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
638
+ </button>
639
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
640
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
641
+ <li>
642
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
643
+ </li>
644
+ <li>
645
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
646
+ </li>
647
+ <li>
648
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
649
+ </li>
650
+ <li>
651
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
652
+ </li>
653
+ <li>
654
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
655
+ </li>
656
+ </ul>
657
+ </div>
658
+ </div>
659
+ {{< /example >}}
660
+
661
+ ## Outline image gallery
662
+
663
+ Use this example to show an image gallery with the user profile and timestamp outside the chat bubble.
664
+
665
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="480" >}}
666
+ <div class="flex items-start gap-2.5">
667
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
668
+ <div class="flex flex-col gap-1">
669
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
670
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
671
+ <span class="text-sm text-body">11:46</span>
672
+ </div>
673
+ <div class="flex flex-col w-full max-w-[320px] leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-base">
674
+ <p class="text-sm text-body">I'm working from home today! 😅</p>
675
+ <div class="grid gap-4 grid-cols-2 my-2.5">
676
+ <div class="group relative">
677
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
678
+ <button data-tooltip-target="download-image-1" class="inline-flex items-center justify-center rounded-full h-8 w-8 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
679
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
680
+ </button>
681
+ <div id="download-image-1" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
682
+ Download image
683
+ <div class="tooltip-arrow" data-popper-arrow></div>
684
+ </div>
685
+ </div>
686
+ <img src="/docs/images/blog/image-1.jpg" class="rounded-base" />
687
+ </div>
688
+ <div class="group relative">
689
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
690
+ <button data-tooltip-target="download-image-2" class="inline-flex items-center justify-center rounded-full h-8 w-8 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
691
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
692
+ </button>
693
+ <div id="download-image-2" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
694
+ Download image
695
+ <div class="tooltip-arrow" data-popper-arrow></div>
696
+ </div>
697
+ </div>
698
+ <img src="/docs/images/blog/image-2.jpg" class="rounded-base" />
699
+ </div>
700
+ <div class="group relative">
701
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
702
+ <button data-tooltip-target="download-image-3" class="inline-flex items-center justify-center rounded-full h-8 w-8 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
703
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
704
+ </button>
705
+ <div id="download-image-3" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
706
+ Download image
707
+ <div class="tooltip-arrow" data-popper-arrow></div>
708
+ </div>
709
+ </div>
710
+ <img src="/docs/images/blog/image-3.jpg" class="rounded-base" />
711
+ </div>
712
+ <div class="group relative">
713
+ <button class="absolute w-full h-full bg-brand/90 hover:bg-brand/30 transition-all duration-300 rounded-base flex items-center justify-center">
714
+ <span class="text-xl font-medium text-white">+7</span>
715
+ <div id="download-image" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
716
+ Download image
717
+ <div class="tooltip-arrow" data-popper-arrow></div>
718
+ </div>
719
+ </button>
720
+ <img src="/docs/images/blog/image-1.jpg" class="rounded-base" />
721
+ </div>
722
+ </div>
723
+ <div class="flex justify-end items-center">
724
+ <button class="text-sm text-fg-brand font-medium inline-flex items-center hover:underline">
725
+ <svg class="w-4 h-4 me-1.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
726
+ Save all
727
+ </button>
728
+ </div>
729
+ </div>
730
+ <span class="text-sm text-body">Delivered</span>
731
+ </div>
732
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
733
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
734
+ </button>
735
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
736
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
737
+ <li>
738
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
739
+ </li>
740
+ <li>
741
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
742
+ </li>
743
+ <li>
744
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
745
+ </li>
746
+ <li>
747
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
748
+ </li>
749
+ <li>
750
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
751
+ </li>
752
+ </ul>
753
+ </div>
754
+ </div>
755
+ {{< /example >}}
756
+
757
+ ## Outline URL preview sharing
758
+
759
+ Use this example to show a URL preview with the user profile and timestamp outside the chat bubble.
760
+
761
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="520" >}}
762
+ <div class="flex items-start gap-2.5">
763
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
764
+ <div class="flex flex-col gap-1 w-full max-w-[320px]">
765
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
766
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
767
+ <span class="text-sm text-body">11:46</span>
768
+ </div>
769
+ <div class="flex flex-col leading-1.5 p-4 bg-neutral-secondary-soft rounded-e-base rounded-es-bas">
770
+ <p class="text-sm py-2.5 text-body">Check out this open-source UI component library based on Tailwind CSS:</p>
771
+ <p class="text-sm pb-2.5"><a href="https://github.com/themesberg/flowbite" class="text-fg-brand underline hover:no-underline font-medium break-all">https://github.com/themesberg/flowbite</a></p>
772
+ <a href="#" class="bg-neutral-tertiary rounded-base p-4 mb-2 hover:bg-neutral-quaternary">
773
+ <img src="https://flowbite.com/docs/images/og-image.png" class="rounded-base mb-2" />
774
+ <span class="text-sm font-medium text-heading">GitHub - themesberg/flowbite: The most popular and open source libra ...</span>
775
+ <p class="text-xs text-body font-normal mt-2">github.com</p>
776
+ </a>
777
+ </div>
778
+ <span class="text-sm text-body">Delivered</span>
779
+ </div>
780
+ <button id="dropdownMenuIconButton" data-dropdown-toggle="dropdownDots" data-dropdown-placement="bottom-start" class="inline-flex self-center items-center text-body hover:text-heading bg-neutral-primary box-border border border-transparent hover:bg-neutral-tertiary focus:ring-4 focus:ring-neutral-tertiary rounded-base p-1.5 focus:outline-none" type="button">
781
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="3" d="M12 6h.01M12 12h.01M12 18h.01"/></svg>
782
+ </button>
783
+ <div id="dropdownDots" class="z-10 bg-neutral-primary-medium border border-default-medium rounded-base shadow-lg w-40 block hidden">
784
+ <ul class="p-2 text-sm text-body font-medium" aria-labelledby="dropdownMenuIconButton">
785
+ <li>
786
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Reply</a>
787
+ </li>
788
+ <li>
789
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Forward</a>
790
+ </li>
791
+ <li>
792
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Copy</a>
793
+ </li>
794
+ <li>
795
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Report</a>
796
+ </li>
797
+ <li>
798
+ <a href="#" class="block w-full p-2 hover:bg-neutral-tertiary-medium hover:text-heading rounded-md">Delete</a>
799
+ </li>
800
+ </ul>
801
+ </div>
802
+ </div>
803
+ {{< /example >}}
804
+
805
+ ## Clean chat bubble
806
+
807
+ Use this example to show a text message with the user profile and timestamp with a transparent background.
808
+
809
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="180" >}}
810
+ <div class="flex items-start gap-2.5">
811
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
812
+ <div class="flex flex-col w-full max-w-[320px] leading-1.5">
813
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
814
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
815
+ <span class="text-sm text-body">11:46</span>
816
+ </div>
817
+ <p class="text-sm py-2 text-heading"> That's awesome. I think our users will really appreciate the improvements.</p>
818
+ <span class="text-sm text-body">Delivered</span>
819
+ </div>
820
+ </div>
821
+ {{< /example >}}
822
+
823
+ ## Clean voice note
824
+
825
+ This example can be used to show a voice note with a transparent background.
826
+
827
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="180" >}}
828
+ <div class="flex items-start gap-2.5">
829
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
830
+ <div class="flex flex-col gap-1">
831
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
832
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
833
+ <span class="text-sm text-body">11:46</span>
834
+ </div>
835
+ <div class="flex flex-col w-full max-w-[320px] leading-1.5 py-2 rounded-e-base rounded-es-base">
836
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
837
+ <button class="inline-flex self-center items-center text-body hover:text-heading" type="button">
838
+ <svg class="w-6 h-6" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 9v6m4-6v6m7-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"/></svg>
839
+ </button>
840
+ <svg aria-hidden="true" class="w-[145px] md:w-[185px] md:h-[40px] text-fg-brand" viewBox="0 0 185 40" fill="none" xmlns="http://www.w3.org/2000/svg">
841
+ <rect y="17" width="3" height="6" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
842
+ <rect x="7" y="15.5" width="3" height="9" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
843
+ <rect x="21" y="6.5" width="3" height="27" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
844
+ <rect x="14" y="6.5" width="3" height="27" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
845
+ <rect x="28" y="3" width="3" height="34" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
846
+ <rect x="35" y="3" width="3" height="34" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
847
+ <rect x="42" y="5.5" width="3" height="29" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
848
+ <rect x="49" y="10" width="3" height="20" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
849
+ <rect x="56" y="13.5" width="3" height="13" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
850
+ <rect x="63" y="16" width="3" height="8" rx="1.5" fill="#6B7280" class="dark:fill-white"/>
851
+ <rect x="70" y="12.5" width="3" height="15" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
852
+ <rect x="77" y="3" width="3" height="34" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
853
+ <rect x="84" y="3" width="3" height="34" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
854
+ <rect x="91" y="0.5" width="3" height="39" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
855
+ <rect x="98" y="0.5" width="3" height="39" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
856
+ <rect x="105" y="2" width="3" height="36" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
857
+ <rect x="112" y="6.5" width="3" height="27" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
858
+ <rect x="119" y="9" width="3" height="22" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
859
+ <rect x="126" y="11.5" width="3" height="17" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
860
+ <rect x="133" y="2" width="3" height="36" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
861
+ <rect x="140" y="2" width="3" height="36" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
862
+ <rect x="147" y="7" width="3" height="26" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
863
+ <rect x="154" y="9" width="3" height="22" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
864
+ <rect x="161" y="9" width="3" height="22" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
865
+ <rect x="168" y="13.5" width="3" height="13" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
866
+ <rect x="175" y="16" width="3" height="8" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
867
+ <rect x="182" y="17.5" width="3" height="5" rx="1.5" fill="#E5E7EB" class="dark:fill-quaternary"/>
868
+ <rect x="66" y="16" width="8" height="8" rx="4" fill="currentColor"/>
869
+ </svg>
870
+ <span class="inline-flex self-center items-center text-sm font-medium text-heading">3:42</span>
871
+ </div>
872
+ </div>
873
+ <span class="text-sm text-body">Delivered</span>
874
+ </div>
875
+ </div>
876
+ {{< /example >}}
877
+
878
+ ## Clean file attachment
879
+
880
+ Use this example to show a file attachment and a download button with a transparent background.
881
+
882
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="200" >}}
883
+ <div class="flex items-start gap-2.5">
884
+ <img class="h-8 w-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image" />
885
+ <div class="flex flex-col gap-2.5">
886
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
887
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
888
+ <span class="text-sm text-body">11:46</span>
889
+ </div>
890
+ <div class="leading-1.5 flex w-full max-w-[320px] flex-col">
891
+ <div class="flex items-start bg-neutral-secondary-soft rounded-xl p-2">
892
+ <div class="me-1.5">
893
+ <span class="flex items-center gap-2 text-sm font-medium text-heading pb-2">
894
+ <svg fill="none" aria-hidden="true" class="w-5 h-5 shrink-0" viewBox="0 0 20 21">
895
+ <g clip-path="url(#clip0_3173_1381)">
896
+ <path fill="#E2E5E7" d="M5.024.5c-.688 0-1.25.563-1.25 1.25v17.5c0 .688.562 1.25 1.25 1.25h12.5c.687 0 1.25-.563 1.25-1.25V5.5l-5-5h-8.75z"/>
897
+ <path fill="#B0B7BD" d="M15.024 5.5h3.75l-5-5v3.75c0 .688.562 1.25 1.25 1.25z"/>
898
+ <path fill="#CAD1D8" d="M18.774 9.25l-3.75-3.75h3.75v3.75z"/>
899
+ <path fill="#F15642" d="M16.274 16.75a.627.627 0 01-.625.625H1.899a.627.627 0 01-.625-.625V10.5c0-.344.281-.625.625-.625h13.75c.344 0 .625.281.625.625v6.25z"/>
900
+ <path fill="#fff" d="M3.998 12.342c0-.165.13-.345.34-.345h1.154c.65 0 1.235.435 1.235 1.269 0 .79-.585 1.23-1.235 1.23h-.834v.66c0 .22-.14.344-.32.344a.337.337 0 01-.34-.344v-2.814zm.66.284v1.245h.834c.335 0 .6-.295.6-.605 0-.35-.265-.64-.6-.64h-.834zM7.706 15.5c-.165 0-.345-.09-.345-.31v-2.838c0-.18.18-.31.345-.31H8.85c2.284 0 2.234 3.458.045 3.458h-1.19zm.315-2.848v2.239h.83c1.349 0 1.409-2.24 0-2.24h-.83zM11.894 13.486h1.274c.18 0 .36.18.36.355 0 .165-.18.3-.36.3h-1.274v1.049c0 .175-.124.31-.3.31-.22 0-.354-.135-.354-.31v-2.839c0-.18.135-.31.355-.31h1.754c.22 0 .35.13.35.31 0 .16-.13.34-.35.34h-1.455v.795z"/>
901
+ <path fill="#CAD1D8" d="M15.649 17.375H3.774V18h11.875a.627.627 0 00.625-.625v-.625a.627.627 0 01-.625.625z"/>
902
+ </g>
903
+ <defs>
904
+ <clipPath id="clip0_3173_1381">
905
+ <path fill="#fff" d="M0 0h20v20H0z" transform="translate(0 .5)"/>
906
+ </clipPath>
907
+ </defs>
908
+ </svg>
909
+ Flowbite Terms & Conditions
910
+ </span>
911
+ <span class="flex text-xs font-normal text-heading gap-2">
912
+ 12 Pages
913
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="self-center" width="3" height="4" viewBox="0 0 3 4" fill="none">
914
+ <circle cx="1.5" cy="2" r="1.5" fill="#6B7280"/>
915
+ </svg>
916
+ 18 MB
917
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="self-center" width="3" height="4" viewBox="0 0 3 4" fill="none">
918
+ <circle cx="1.5" cy="2" r="1.5" fill="#6B7280"/>
919
+ </svg>
920
+ PDF
921
+ </span>
922
+ </div>
923
+ <div class="inline-flex self-center items-center">
924
+ <button class="text-heading bg-neutral-secondary-soft box-border border border-transparent hover:bg-neutral-quaternary focus:ring-4 focus:ring-neutral-quaternary font-medium leading-5 rounded-base p-2 focus:outline-none" type="button">
925
+ <svg class="w-5 h-5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 13V4M7 14H5a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-2m-1-5-4 5-4-5m9 8h.01"/></svg>
926
+ </button>
927
+ </div>
928
+ </div>
929
+ </div>
930
+ <span class="text-sm text-body">Delivered</span>
931
+ </div>
932
+ </div>
933
+ {{< /example >}}
934
+
935
+ ## Clean image attachment
936
+
937
+ This example can be used to show an image and a download button with a transparent background.
938
+
939
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="380" >}}
940
+ <div class="flex items-start gap-2.5">
941
+ <img class="h-8 w-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image" />
942
+ <div class="flex flex-col gap-2.5">
943
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
944
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
945
+ <span class="text-sm text-body">11:46</span>
946
+ </div>
947
+ <div class="leading-1.5 flex w-full max-w-[320px] flex-col">
948
+ <p class="text-sm text-body">This is the new office <3</p>
949
+ <div class="group relative mt-2">
950
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
951
+ <button data-tooltip-target="download-image" class="inline-flex items-center justify-center rounded-full h-10 w-10 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
952
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
953
+ </button>
954
+ <div id="download-image" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
955
+ Download image
956
+ <div class="tooltip-arrow" data-popper-arrow></div>
957
+ </div>
958
+ </div>
959
+ <img src="/docs/images/blog/image-2.jpg" class="rounded-base" />
960
+ </div>
961
+ </div>
962
+ <span class="text-sm text-body">Delivered</span>
963
+ </div>
964
+ </div>
965
+ {{< /example >}}
966
+
967
+ ## Clean image gallery
968
+
969
+ Use this example to show an image gallery with a transparent background as a chat message.
970
+
971
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="390" >}}
972
+ <div class="flex items-start gap-2.5">
973
+ <img class="h-8 w-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image" />
974
+ <div class="flex flex-col gap-2.5">
975
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
976
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
977
+ <span class="text-sm text-body">11:46</span>
978
+ </div>
979
+ <div class="leading-1.5 flex w-full max-w-[320px] flex-col">
980
+ <p class="text-sm text-body">This is the new office <3</p>
981
+ <div class="grid gap-4 grid-cols-2 mt-2">
982
+ <div class="group relative">
983
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
984
+ <button data-tooltip-target="download-image-1" class="inline-flex items-center justify-center rounded-full h-8 w-8 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
985
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
986
+ </button>
987
+ <div id="download-image-1" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
988
+ Download image
989
+ <div class="tooltip-arrow" data-popper-arrow></div>
990
+ </div>
991
+ </div>
992
+ <img src="/docs/images/blog/image-1.jpg" class="rounded-base" />
993
+ </div>
994
+ <div class="group relative">
995
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
996
+ <button data-tooltip-target="download-image-2" class="inline-flex items-center justify-center rounded-full h-8 w-8 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
997
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
998
+ </button>
999
+ <div id="download-image-2" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
1000
+ Download image
1001
+ <div class="tooltip-arrow" data-popper-arrow></div>
1002
+ </div>
1003
+ </div>
1004
+ <img src="/docs/images/blog/image-2.jpg" class="rounded-base" />
1005
+ </div>
1006
+ <div class="group relative">
1007
+ <div class="absolute w-full h-full bg-gray-900/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 rounded-base flex items-center justify-center">
1008
+ <button data-tooltip-target="download-image-3" class="inline-flex items-center justify-center rounded-full h-8 w-8 bg-white/30 hover:bg-white/50 focus:ring-4 focus:outline-none dark:text-white focus:ring-gray-50">
1009
+ <svg class="w-5 h-5 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
1010
+ </button>
1011
+ <div id="download-image-3" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
1012
+ Download image
1013
+ <div class="tooltip-arrow" data-popper-arrow></div>
1014
+ </div>
1015
+ </div>
1016
+ <img src="/docs/images/blog/image-3.jpg" class="rounded-base" />
1017
+ </div>
1018
+ <div class="group relative">
1019
+ <button class="absolute w-full h-full bg-brand/90 hover:bg-brand/30 transition-all duration-300 rounded-base flex items-center justify-center">
1020
+ <span class="text-xl font-medium text-white">+7</span>
1021
+ <div id="download-image" role="tooltip" class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-white transition-opacity duration-300 bg-dark rounded-base shadow-xs opacity-0 tooltip">
1022
+ Download image
1023
+ <div class="tooltip-arrow" data-popper-arrow></div>
1024
+ </div>
1025
+ </button>
1026
+ <img src="/docs/images/blog/image-1.jpg" class="rounded-base" />
1027
+ </div>
1028
+ </div>
1029
+ </div>
1030
+ <div class="flex justify-between items-center">
1031
+ <span class="text-sm text-body">Delivered</span>
1032
+ <button class="text-sm text-fg-brand font-medium inline-flex items-center hover:underline">
1033
+ <svg class="w-4 h-4 me-1.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 15v2a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-2m-8 1V4m0 12-4-4m4 4 4-4"/></svg>
1034
+ Save all
1035
+ </button>
1036
+ </div>
1037
+ </div>
1038
+ </div>
1039
+ {{< /example >}}
1040
+
1041
+ ## Clean URL preview sharing
1042
+
1043
+ This example can be used to show a URL preview with a transparent background.
1044
+
1045
+ {{< example class="flex justify-center" github="components/chat-bubble.md" show_dark=true iframeHeight="450" >}}
1046
+ <div class="flex items-start gap-2.5">
1047
+ <img class="w-8 h-8 rounded-full" src="/docs/images/people/profile-picture-3.jpg" alt="Jese image">
1048
+ <div class="flex flex-col w-full max-w-[320px] leading-1.5">
1049
+ <div class="flex items-center space-x-1.5 rtl:space-x-reverse">
1050
+ <span class="text-sm font-semibold text-heading">Bonnie Green</span>
1051
+ <span class="text-sm text-body">11:46</span>
1052
+ </div>
1053
+ <p class="text-sm py-2.5 text-body">Check out this open-source UI component library based on Tailwind CSS:</p>
1054
+ <p class="text-sm pb-2.5"><a href="https://github.com/themesberg/flowbite" class="text-fg-brand underline hover:no-underline font-medium break-all">https://github.com/themesberg/flowbite</a></p>
1055
+ <a href="#" class="bg-neutral-tertiary rounded-base p-4 mb-2 hover:bg-neutral-quaternary">
1056
+ <img src="https://flowbite.com/docs/images/og-image.png" class="rounded-base mb-2" />
1057
+ <span class="text-sm font-medium text-heading">GitHub - themesberg/flowbite: The most popular and open source libra ...</span>
1058
+ <p class="text-xs text-body font-normal mt-2">github.com</p>
1059
+ </a>
1060
+ <span class="text-sm text-body">Delivered</span>
1061
+ </div>
1062
+ </div>
1063
+ {{< /example >}}