Want a lock screen with a cool, moody vibe? Discover our exclusive collection of anime girl smoking wallpapers. Each background captures a dark, contemplative aesthetic. Find the perfect anime girl smoking pose, from dramatic neon cityscapes to quiet, reflective moments. All are optimized for mobile and available in 4K quality. Find your new favorite look and download it instantly. HD Anime Girl Smoking Wallpapers for iPhone & Android Every anime girl smoking wallpaper here is formatted for a perfect fit on your mobile screen. Preview the images below and tap the download button for the full, uncompressed 4K version. This collection focuses on the unique aesthetic of anime girls in moody, smoking poses. For a look at the male counterparts, be sure to check out our gallery of awesome anime boy smoking wallpapers for your phone. @import url('https://cdn.jsdelivr.net/npm/remixicon@4.2.0/fonts/remixicon.css'); .wallpaper-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(1, 1fr); } @media (min-width: 640px) { .wallpaper-grid { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 800px) { .wallpaper-grid { grid-template-columns: repeat(3, 1fr); } } .modal-enter { animation: modal-enter-animation 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards; } @keyframes modal-enter-animation { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } #modal-image { transition: opacity 0.3s ease-in-out; } .modal-exit { animation: modal-exit-animation 0.2s ease-in-out forwards; } @keyframes modal-exit-animation { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.95); } } /* Basic Reset & Defaults (inspired by Tailwind Preflight) */ *, ::before, ::after { box-sizing: border-box; } img { display: block; max-width: 100%; height: auto; } button { background: transparent; border: none; padding: 0; cursor: pointer; } a { color: inherit; text-decoration: inherit; } /* --- Wallpaper Grid Styles --- */ main.wallpaper-grid { padding: 1.5rem; max-width: 1536px; margin-left: auto; margin-right: auto; } .wallpaper-item-container { cursor: pointer; } .wallpaper-item-container > .relative { position: relative; overflow: hidden; border-radius: 1rem; box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); transition-property: all; transition-duration: 300ms; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .wallpaper-item-container:hover > .relative { box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); } .wallpaper-item-container img { width: 100%; transition-property: transform; transition-duration: 300ms; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .wallpaper-item-container:hover img { transform: scale(1.05); } .wallpaper-item-container .absolute.inset-0 { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background-image: linear-gradient(to top, rgb(0 0 0 / 0.7), transparent); opacity: 0; transition-property: opacity; transition-duration: 300ms; } .wallpaper-item-container:hover .absolute.inset-0 { opacity: 1; } .wallpaper-item-container .absolute.bottom-0 { position: absolute; bottom: 0; left: 0; padding: 1.5rem; } .wallpaper-item-container .text-lg { color: rgb(255 255 255); font-weight: 700; font-size: 1.125rem; line-height: 1.75rem; } .wallpaper-item-container .text-sm { color: rgb(209 213 219); font-size: 0.875rem; line-height: 1.25rem; } .wallpaper-item-container .absolute.top-4 { position: absolute; top: 1rem; right: 1rem; } .wallpaper-item-container .absolute.top-4 > div { background-color: rgb(255 255 255 / 0.2); backdrop-filter: blur(4px); color: rgb(255 255 255); padding: 0.75rem; border-radius: 9999px; transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .wallpaper-item-container .absolute.top-4 > div:hover { background-color: rgb(255 255 255 / 0.3); } .wallpaper-download-links.hidden { display: none; } /* --- Modal Styles --- */ #modal-container { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 50; display: flex; align-items: center; justify-content: center; background-color: rgb(0 0 0 / 0.8); backdrop-filter: blur(4px); padding: 1rem; } #modal-container.hidden { display: none; } #modal-content { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.5rem; transition-property: all; transition-duration: 300ms; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } #modal-image-container { flex-grow: 1; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-width: 0; min-height: 0; padding: 1rem; } #modal-image { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 0.5rem; box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); } /* Modal Sidebar */ #modal-content > .flex-shrink-0 { flex-shrink: 0; width: 91.666667%; /* 11/12 */ max-width: 24rem; /* sm */ display: flex; flex-direction: column; padding: 1.5rem; background-color: rgb(243 244 246 / 0.95); border-radius: 1rem; } #modal-title { font-size: 1.5rem; line-height: 2rem; font-weight: 700; margin-bottom: 1rem; color: rgb(17 24 39); } #modal-content p.text-sm { font-size: 0.875rem; line-height: 1.25rem; color: rgb(75 85 99); margin-bottom: 1rem; } #modal-download-area { flex-grow: 1; overflow-y: auto; padding-right: 0.5rem; padding-top: 0.5rem; padding-bottom: 0.5rem; } /* space-y-3 */ #modal-download-area > :not([hidden]) ~ :not([hidden]) { margin-top: 0.75rem; } #modal-download-area a { display: block; text-align: center; font-weight: 500; background-color: rgb(209 213 219); border-radius: 0.5rem; padding: 0.75rem; transition-property: all; transition-duration: 200ms; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } #modal-download-area a:hover { background-color: rgb(99 102 241); color: rgb(255 255 255); transform: scale(1.05); } #close-modal-button { position: absolute; top: 1rem; right: 1rem; color: rgb(255 255 255); background-color: rgb(0 0 0 / 0.4); border-radius: 9999px; padding: 0.5rem; z-index: 10; transition-property: color, background-color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } #close-modal-button:hover { background-color: rgb(0 0 0 / 0.6); } /* --- Responsive & Dark Mode --- */ @media (min-width: 1024px) { #modal-content { flex-direction: row; } #modal-image-container { width: auto; height: 100%; padding: 2rem; } #modal-content > .flex-shrink-0 { width: 20rem; max-height: 90vh; } } @media (prefers-color-scheme: dark) { #modal-content > .flex-shrink-0 { background-color: rgb(31 41 55 / 0.95); } #modal-title { color: rgb(255 255 255); } #modal-content p.text-sm { color: rgb(209 213 219); } #modal-download-area a { background-color: rgb(55 65 81); } #modal-download-area a:hover { background-color: rgb(99 102 241); } } A sad anime girl smoking pose in the rain, with smoke curling from her cigarette. FHD - 1080 x 1920 QHD - 1440 x 2560 4K UHD - 2160 x 3840 A cool anime girl smoking pose, showing a character leaning against a brick wall in a dark alley. FHD - 1080 x 1920 QHD - 1440 x 2560 4K UHD - 2160 x 3840 An anime girl smoking wallpaper for iPhone with a close-up on the character's face and the glowing cigarette. FHD - 1080 x 1920 QHD - 1440 x 2560 4K UHD - 2160 x 3840 Aesthetic wallpaper of an anime girl smoking a cigarette in forest. FHD - 1080 x 1920 QHD - 1440 x 2560 4K UHD - 2160 x 3840 Aesthetic wallpaper of an anime girl smoking a cigarette under the neon lights of a futuristic city. FHD - 1080 x 1920 QHD - 1440 x 2560 4K UHD - 2160 x 3840 anime fox girl smoking wallpaper for iPhones FHD - 1080 x 1920 QHD - 1440 x 2560 4K UHD - 2160 x 3840 An anime girl smoking wallpaper for iPhone showing a pencil drawn character. FHD - 1080 x 1920 QHD - 1440 x 2560 4K UHD - 2160 x 3840 Two anime girls neko smoking on roof phone wallpaper FHD - 1080 x 1920 QHD - 1440 x 2560 4K UHD - 2160 x 3840 Anime art girl and guy silhouette smoking pink wallpaper FHD - 1080 x 1920 QHD - 1440 x 2560 4K UHD - 2160 x 3840 Choose your resolution: /** * Advanced Wallpaper Modal Script * * Version 3.0 - Now includes image preloading to prevent flashing old content. * * Improvements: * - Preloading: Hides the image container until the new image is fully downloaded, then fades it in. * - Encapsulation: Code is wrapped in an IIFE to prevent polluting the global scope. * - Robustness: Checks if elements exist before trying to use them. * - Accessibility (A11y): * - Focus is trapped within the modal for keyboard users. * - Focus is returned to the original wallpaper item when the modal closes. * - The 'Escape' key is properly handled. * - State Management: Tracks the currently active trigger to manage focus return. * - Efficiency: DOM elements are queried only once and stored in constants. */ (function () { 'use strict'; // --- 1. DOM Element Selection --- // Query all necessary elements once and store them. const wallpaperItems = document.querySelectorAll('.wallpaper-item-container'); const modalContainer = document.getElementById('modal-container'); const modalContent = document.getElementById('modal-content'); const modalImage = document.getElementById('modal-image'); const modalTitle = document.getElementById('modal-title'); const modalDownloads = document.getElementById('modal-download-area'); const closeModalBtn = document.getElementById('close-modal-button'); const modalImageContainer = document.getElementById('modal-image-container'); // This variable will store the element that opened the modal. let activeTrigger = null; // --- 2. Core Functions --- /** * Opens the modal and populates it with content from the clicked wallpaper item. * @param {HTMLElement} triggerElement - The wallpaper container that was clicked. */ const openModal = (triggerElement) => { // Find the necessary data from the trigger element const img = triggerElement.querySelector('img'); const downloadLinksContainer = triggerElement.querySelector('.wallpaper-download-links'); // Graceful exit if the HTML structure is incomplete for this item if (!img || !downloadLinksContainer) { console.error('Wallpaper item is missing an image or download links container.'); return; } // Store the trigger element for focus return later activeTrigger = triggerElement; // --- PRELOADING FIX STARTS HERE --- // Hide the image element immediately to prevent showing the old image. modalImage.style.opacity = '0'; // Define what happens when the new image is successfully loaded. modalImage.onload = () => { // Fade the image in now that it's ready. modalImage.style.opacity = '1'; }; // (Optional but good practice) Handle cases where the image fails to load. modalImage.onerror = () => { console.error('Modal image failed to load.'); modalImage.style.opacity = '1'; // Show the broken image icon }; // --- PRELOADING FIX ENDS HERE --- // Populate the modal content const title = triggerElement.dataset.wallpaperTitle || 'Wallpaper Preview'; const previewSrc = img.src.replace(/\/s\d+(-rw)?\//, '/s720-rw/'); // Get high-res version // This line now triggers the download. The onload event above will fire when it's done. modalImage.src = previewSrc; modalImage.alt = img.alt; modalTitle.textContent = title; // Clear previous download links and create new ones modalDownloads.innerHTML = ''; const downloadLinks = downloadLinksContainer.querySelectorAll('a'); downloadLinks.forEach(link => { const newLink = document.createElement('a'); newLink.href = link.href; newLink.innerHTML = link.innerHTML; newLink.setAttribute('download', ''); // Prompt download newLink.className = "block text-center font-medium bg-gray-300 dark:bg-gray-700 hover:bg-indigo-500 hover:text-white dark:hover:bg-indigo-500 rounded-lg p-3 transition-all duration-200 ease-in-out transform hover:scale-105"; modalDownloads.appendChild(newLink); }); // Show the modal with animation document.body.style.overflow = 'hidden'; modalContainer.classList.remove('hidden'); modalContent.classList.remove('modal-exit'); modalContent.classList.add('modal-enter'); // --- Accessibility: Move focus into the modal --- closeModalBtn.focus(); }; /** * Closes the modal and handles the exit animation. */ const closeModal = () => { modalContent.classList.remove('modal-enter'); modalContent.classList.add('modal-exit'); // Wait for the animation to finish before hiding the modal setTimeout(() => { modalContainer.classList.add('hidden'); document.body.style.overflow = 'auto'; // --- Accessibility: Return focus to the element that opened the modal --- if (activeTrigger) { activeTrigger.focus(); activeTrigger = null; // Clear the stored trigger } }, 200); // Must match the duration of the modal-exit animation }; // --- 3. Event Listener Setup --- // Check if the modal container exists before adding listeners if (!modalContainer || !closeModalBtn) { console.error('Modal components not found. The script will not run.'); return; } // Open modal when a wallpaper item is clicked wallpaperItems.forEach(item => { item.addEventListener('click', () => openModal(item)); // Add keyboard accessibility for opening item.setAttribute('tabindex', '0'); item.setAttribute('role', 'button'); item.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); openModal(item); } }); }); // Close modal listeners closeModalBtn.addEventListener('click', closeModal); modalContainer.addEventListener('click', (e) => { // Close only if the user clicks on the dark backdrop, not the content if (e.target === modalContainer || e.target === modalImageContainer) { closeModal(); } }); // Keyboard controls for the modal document.addEventListener('keydown', (e) => { // Close modal with the 'Escape' key if it's open if (e.key === 'Escape' && !modalContainer.classList.contains('hidden')) { closeModal(); } // --- Accessibility: Trap focus within the modal --- if (e.key === 'Tab' && !modalContainer.classList.contains('hidden')) { trapFocus(e); } }); /** * Traps the keyboard focus within the modal when it is open. * @param {KeyboardEvent} e - The keyboard event. */ const trapFocus = (e) => { const focusableElements = modalContent.querySelectorAll( 'a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])' ); const firstElement = focusableElements[0]; const lastElement = focusableElements[focusableElements.length - 1]; if (e.shiftKey) { // if shift + tab is pressed if (document.activeElement === firstElement) { lastElement.focus(); e.preventDefault(); } } else { // if tab is pressed if (document.activeElement === lastElement) { firstElement.focus(); e.preventDefault(); } } }; })(); // End of IIFE How to Set Your New Wallpaper (iPhone & Android) It's simple to get your new look set up in seconds. On iPhone: Tap the download button to save the wallpaper to your Photos. Go to Settings > Wallpaper > Add New Wallpaper. Select the image from your photos, adjust if needed, and tap Add. On Android: Tap the download button to save the image to your Gallery/Files. Long-press on a blank space on your home screen. Tap "Wallpaper & style" (or similar wording). Choose the downloaded image and set it for your home screen, lock screen, or both. See Also: Cool Anime Boy Smoking Wallpapers We hope you found the perfect anime girl smoking cigarette wallpaper to transform your phone's aesthetic. A great wallpaper makes your device feel uniquely yours. Which one did you choose for your lock screen? Drop a comment below and be sure to share this page with a friend!

ForMyAnime