<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: DOUdev DOUdec</title>
    <description>The latest articles on DEV Community by DOUdev DOUdec (@doudev_doudec_932f2856baa).</description>
    <link>https://dev.to/doudev_doudec_932f2856baa</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3729166%2F54e5b30b-8509-4e31-8261-dfa15ea0adcc.png</url>
      <title>DEV Community: DOUdev DOUdec</title>
      <link>https://dev.to/doudev_doudec_932f2856baa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/doudev_doudec_932f2856baa"/>
    <language>en</language>
    <item>
      <title>Chat Frame</title>
      <dc:creator>DOUdev DOUdec</dc:creator>
      <pubDate>Fri, 23 Jan 2026 20:14:13 +0000</pubDate>
      <link>https://dev.to/doudev_doudec_932f2856baa/chat-frame-lc7</link>
      <guid>https://dev.to/doudev_doudec_932f2856baa/chat-frame-lc7</guid>
      <description>&lt;p&gt;Script&lt;br&gt;
&lt;/p&gt;


&lt;p&gt;```/&lt;em&gt;By SpaceIA Dev/&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;&lt;br&gt;
    &lt;br&gt;&lt;br&gt;
    &lt;br&gt;&lt;br&gt;
    Cyber Chat Ultra-Mini&lt;br&gt;&lt;br&gt;
    &amp;lt;br&amp;gt;&lt;br&gt;
        @property --rotation {&amp;lt;br&amp;gt;&lt;br&gt;
            syntax: &amp;amp;#39;&amp;lt;angle&amp;gt;&amp;amp;#39;;&amp;lt;br&amp;gt;&lt;br&gt;
            inherits: false;&amp;lt;br&amp;gt;&lt;br&gt;
            initial-value: 0deg;&amp;lt;br&amp;gt;&lt;br&gt;
        }&amp;lt;/p&amp;gt;&lt;br&gt;
&amp;lt;div class="highlight"&amp;gt;&amp;lt;pre class="highlight plaintext"&amp;gt;&amp;lt;code&amp;gt;    :root {&lt;br&gt;
        --glass-frost: 0.1;&lt;br&gt;
        --glass-saturation: 2;&lt;br&gt;
        --border_width: 2px;&lt;br&gt;
        --placeholder-color: rgba(255, 255, 255, 0.4);&lt;br&gt;
        --neon-gradient: conic-gradient(from var(--rotation) at 50% 50%, #0084ff, #00ff88, #ffaa00, #0084ff);&lt;br&gt;
    }
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;body {
    font-family: system-ui, sans-serif;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at center, rgba(255,255,255,0.05) 0%, rgba(0,0,0,1) 100%), 
                url('https://images.unsplash.com/photo-1551384963-cccb0b7ed94b?q=80&amp;amp;amp;amp;w=2000') center / cover;
    margin: 0;
    overflow: hidden;
}

.main-container {
    position: relative;
    width: 90%;
    max-width: 400px; 
    z-index: 2;
}

.chat-box {
    position: relative;
    display: flex;
    align-items: center;
    padding: 0.35rem; 
    border-radius: 999px;
    background: rgba(255, 255, 255, var(--glass-frost));
    backdrop-filter: blur(15px) saturate(var(--glass-saturation));
    -webkit-backdrop-filter: blur(15px);
    border: var(--border_width) solid rgba(255, 255, 255, 0.1);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.chat-box::after {
    content: '';
    position: absolute;
    inset: calc(var(--border_width) * -1.5);
    border-radius: inherit;
    background: var(--neon-gradient);
    z-index: -1;
    filter: blur(10px);
    opacity: 0;
    transition: opacity 0.4s ease;
    animation: rotate 3s infinite linear; 
}

.neon-border {
    position: absolute;
    inset: calc(var(--border_width) * -1);
    border-radius: inherit;
    padding: var(--border_width);
    background: var(--neon-gradient);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    transition: opacity 0.4s ease;
    animation: rotate 3s infinite linear;
}

.chat-box.is-typing {
    background: rgba(0, 0, 0, 0.6);
    transform: scale(1.01);
}

.chat-box.is-typing::after,
.chat-box.is-typing .neon-border {
    opacity: 1;
}

.chat-input {
    flex: 1;
    background: none;
    border: none;
    color: white;
    font-size: 1rem; 
    padding: 0 1.2rem;
    outline: none;
    z-index: 5;
}

.chat-input::placeholder { color: var(--placeholder-color); }

.glass-btn {
    width: 2.5rem; 
    height: 2.5rem;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.1);
    background: rgba(255,255,255,0.05);
    color: var(--placeholder-color);
    fill: var(--placeholder-color);
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: all 0.3s ease;
    z-index: 5;
    padding: 0;
}

.glass-btn:hover {
    background: rgba(255,255,255,0.15);
    color: white;
    fill: white;
    transform: translateY(-2px) scale(1.05);
}

.send-svg { width: 1.2rem; height: 1.2rem; }

@keyframes rotate { to { --rotation: 360deg; } }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&amp;amp;lt;/style&amp;amp;gt;&lt;br&gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/div&amp;gt;&lt;br&gt;
&amp;lt;p&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;br&amp;gt;&lt;br&gt;
&amp;lt;body&amp;gt;&amp;lt;/p&amp;gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;div class="main-container"&amp;gt;&lt;br&gt;
    &amp;lt;div class="chat-box" id="chat-box"&amp;gt;&lt;br&gt;
        &amp;lt;div class="neon-border"&amp;gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    &amp;amp;lt;input type="text" id="main-input" class="chat-input" placeholder="to write..." autocomplete="off"&amp;amp;gt;

    &amp;amp;lt;button class="glass-btn"&amp;amp;gt;
        &amp;amp;lt;svg viewBox="0 0 32 32" class="send-svg"&amp;amp;gt;&amp;amp;lt;path d="m26.71 10.29-10-10a1 1 0 0 0-1.41 0l-10 10 1.41 1.41L15 3.41V32h2V3.41l8.29 8.29z"/&amp;amp;gt;&amp;amp;lt;/svg&amp;amp;gt;
    &amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;/div&amp;amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;script&amp;gt;&lt;br&gt;
    const chatInput = document.getElementById('main-input');&lt;br&gt;
    const chatBox = document.getElementById('chat-box');&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chatInput.addEventListener('input', () =&amp;amp;gt; {
    if (chatInput.value.trim().length &amp;amp;gt; 0) {
        chatBox.classList.add('is-typing');
    } else {
        chatBox.classList.remove('is-typing');
    }
});

chatInput.addEventListener('blur', () =&amp;amp;gt; {
    if (chatInput.value.trim().length === 0) {
        chatBox.classList.remove('is-typing');
    }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;br&amp;gt;&lt;br&gt;
&amp;lt;/html&amp;gt;&amp;lt;br&amp;gt;&lt;br&gt;
&amp;lt;img src="&lt;a href="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1dsplommfhwbogmaaswu.png" rel="noopener noreferrer"&gt;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1dsplommfhwbogmaaswu.png&lt;/a&gt;" alt=" "/&amp;gt;&amp;lt;/p&amp;gt;&lt;br&gt;
&amp;lt;div class="highlight"&amp;gt;&amp;lt;pre class="highlight plaintext"&amp;gt;&amp;lt;code&amp;gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/div&amp;gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
  </channel>
</rss>
