curiouscurrent's picture
3d design not getting generated
ecc1f3d verified
class CustomFooter extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
footer {
background: linear-gradient(180deg, rgba(17, 24, 39, 0.5), rgba(17, 24, 39, 0.9));
border-top: 1px solid rgba(75, 85, 99, 0.3);
padding: 3rem 1rem 2rem;
margin-top: 4rem;
}
.footer-container {
max-width: 1280px;
margin: 0 auto;
}
.footer-content {
display: grid;
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 3rem;
margin-bottom: 3rem;
}
.footer-brand h3 {
font-size: 1.5rem;
font-weight: bold;
margin-bottom: 1rem;
background: linear-gradient(135deg, #0ea5e9, #d946ef);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.footer-brand p {
color: #9ca3af;
line-height: 1.6;
margin-bottom: 1.5rem;
}
.social-links {
display: flex;
gap: 1rem;
}
.social-link {
width: 40px;
height: 40px;
background: rgba(75, 85, 99, 0.2);
border: 1px solid rgba(75, 85, 99, 0.3);
border-radius: 0.5rem;
display: flex;
align-items: center;
justify-content: center;
color: #d1d5db;
text-decoration: none;
transition: all 0.2s ease;
}
.social-link:hover {
background: rgba(14, 165, 233, 0.2);
border-color: #0ea5e9;
color: #0ea5e9;
transform: translateY(-2px);
}
.footer-column h4 {
color: white;
font-size: 1rem;
font-weight: 600;
margin-bottom: 1rem;
}
.footer-links {
list-style: none;
}
.footer-links li {
margin-bottom: 0.75rem;
}
.footer-links a {
color: #9ca3af;
text-decoration: none;
transition: color 0.2s ease;
}
.footer-links a:hover {
color: #0ea5e9;
}
.footer-bottom {
padding-top: 2rem;
border-top: 1px solid rgba(75, 85, 99, 0.3);
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 1rem;
}
.footer-bottom p {
color: #6b7280;
font-size: 0.875rem;
}
.footer-bottom-links {
display: flex;
gap: 2rem;
}
.footer-bottom-links a {
color: #6b7280;
text-decoration: none;
font-size: 0.875rem;
transition: color 0.2s ease;
}
.footer-bottom-links a:hover {
color: #0ea5e9;
}
@media (max-width: 1024px) {
.footer-content {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 640px) {
.footer-content {
grid-template-columns: 1fr;
gap: 2rem;
}
.footer-bottom {
flex-direction: column;
text-align: center;
}
.footer-bottom-links {
gap: 1rem;
}
}
</style>
<footer>
<div class="footer-container">
<div class="footer-content">
<div class="footer-brand">
<h3>TextTo3D Studio</h3>
<p>Transform your ideas into stunning 3D designs with the power of AI. Create, explore, and share your digital masterpieces.</p>
<div class="social-links">
<a href="#" class="social-link">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"/>
</svg>
</a>
<a href="#" class="social-link">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zM5.838 12a6.162 6.162 0 1 1 12.324 0 6.162 6.162 0 0 1-12.324 0zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm4.965-10.405a1.44 1.44 0 1 1 2.881.001 1.44 1.44 0 0 1-2.881-.001z"/>
</svg>
</a>
<a href="#" class="social-link">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
</svg>
</a>
</div>
</div>
<div class="footer-column">
<h4>Product</h4>
<ul class="footer-links">
<li><a href="#">Features</a></li>
<li><a href="#">Pricing</a></li>
<li><a href="#">API</a></li>
<li><a href="#">Documentation</a></li>
</ul>
</div>
<div class="footer-column">
<h4>Company</h4>
<ul class="footer-links">
<li><a href="#">About Us</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Careers</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
<div class="footer-column">
<h4>Resources</h4>
<ul class="footer-links">
<li><a href="#">Community</a></li>
<li><a href="#">Tutorials</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Status</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2024 TextTo3D Studio. All rights reserved.</p>
<div class="footer-bottom-links">
<a href="#">Privacy Policy</a>
<a href="#">Terms of Service</a>
<a href="#">Cookie Policy</a>
</div>
</div>
</div>
</footer>
`;
}
}
customElements.define('custom-footer', CustomFooter);