alien79's picture
Ma io voglio che ti inventi una UX/UI alternativa per mostrare le informazioni
7f77045 verified
class ConceptCard extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
:host {
display: block;
max-width: 800px;
margin: 2rem auto;
font-family: 'Inter', sans-serif;
}
.card {
background: white;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 10px 30px rgba(0,0,0,0.05);
transition: transform 0.3s ease;
}
.card:hover {
transform: translateY(-5px);
}
.header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 1.5rem;
position: relative;
}
.role-badge {
background: rgba(255,255,255,0.2);
padding: 0.25rem 0.75rem;
border-radius: 100px;
font-size: 0.75rem;
font-weight: 600;
display: inline-block;
margin-bottom: 0.5rem;
}
.role-select {
position: absolute;
top: 1.5rem;
right: 1.5rem;
}
select {
background: rgba(255,255,255,0.2);
border: 1px solid rgba(255,255,255,0.3);
color: white;
padding: 0.25rem 1rem 0.25rem 0.5rem;
border-radius: 4px;
appearance: none;
}
h2 {
margin: 0;
font-size: 1.5rem;
}
.description {
color: rgba(255,255,255,0.8);
font-size: 0.875rem;
margin-top: 0.5rem;
}
.content {
padding: 1.5rem;
}
.pill-container {
display: flex;
gap: 0.5rem;
margin: 1rem 0;
flex-wrap: wrap;
}
.pill {
background: #f3f4f6;
color: #4b5563;
padding: 0.25rem 0.75rem;
border-radius: 100px;
font-size: 0.75rem;
display: flex;
align-items: center;
gap: 0.25rem;
}
.section {
margin-bottom: 1.5rem;
}
.section-title {
font-size: 0.875rem;
color: #6b7280;
margin-bottom: 0.5rem;
font-weight: 500;
}
.section-content {
background: #f9fafb;
border-radius: 8px;
padding: 1rem;
}
.focus-item {
padding: 1rem;
margin-bottom: 0.5rem;
border-left: 3px solid #6366f1;
background: white;
border-radius: 0 8px 8px 0;
}
.actions {
display: flex;
gap: 0.75rem;
margin-top: 1.5rem;
}
button {
padding: 0.5rem 1rem;
border-radius: 6px;
font-size: 0.875rem;
font-weight: 500;
display: flex;
align-items: center;
gap: 0.5rem;
cursor: pointer;
transition: all 0.2s ease;
}
.edit {
background: white;
border: 1px solid #e5e7eb;
color: #4b5563;
}
.edit:hover {
background: #f9fafb;
}
.regenerate {
background: #6366f1;
color: white;
border: none;
}
.regenerate:hover {
background: #4f46e5;
}
.delete {
background: #ef4444;
color: white;
border: none;
}
.delete:hover {
background: #dc2626;
}
</style>
<div class="card">
<div class="header">
<div class="role-badge">Concept Scout</div>
<div class="role-select">
<select>
<option>Concept Scout</option>
<option disabled>Conversation Lead</option>
<option>Domain Specialist</option>
<option>Synthesis Lead</option>
</select>
</div>
<h2>Esploratore Concetti!</h2>
<p class="description">Scandaglia input e materiali per estrarre concetti e opportunità rilevanti.</p>
<div class="pill-container">
<div class="pill">
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<polyline points="16 18 22 12 16 6"></polyline>
<polyline points="8 6 2 12 8 18"></polyline>
</svg>
concept.extract
</div>
<div class="pill">
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline>
</svg>
signal.tracker
</div>
</div>
</div>
<div class="content">
<div class="section">
<div class="section-title">Descrizione</div>
<div class="section-content">
Specializzato nell'analisi profonda degli input per rilevare le strutture e i presupposti concettuali cruciali al progetto.
</div>
</div>
<div class="section">
<div class="section-title">Missione</div>
<div class="section-content">
Estrarre i presupposti concettuali necessari al 'test di testaggio' e identificare opportunità metodologiche per garantire un approccio massimamente 'testoso' nel contatto coi 'testuali testicoli'.
</div>
</div>
<div class="section">
<div class="section-title">Voce</div>
<div class="section-content">
Analitico, euristico, incisivo, orientato alla scoperta
</div>
</div>
<div class="section">
<div class="section-title">Focus principali</div>
<div>
<div class="focus-item">
Identificare le variabili concettuali nascoste nell'azione di 'testare il test'.
</div>
<div class="focus-item">
Mappare opportunità e schemi derivanti dal 'tastando con la testa' il materiale.
</div>
<div class="focus-item">
Scandagliare tutti gli input per rilevare i concetti di 'testosità' e coerenza.
</div>
<div class="focus-item">
Estrarre i significati operativi e i limiti dei 'testuali testicoli' ai fini della verifica.
</div>
<div class="focus-item">
Proporre schemi concettuali alternativi per massimizzare la rilevanza del testaggio.
</div>
</div>
</div>
<div class="actions">
<button class="edit">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path>
<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path>
</svg>
Modifica
</button>
<button class="regenerate">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<polyline points="23 4 23 10 17 10"></polyline>
<polyline points="1 20 1 14 7 14"></polyline>
<path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path>
</svg>
Rigenera con AI
</button>
<button class="delete">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<polyline points="3 6 5 6 21 6"></polyline>
<path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path>
<line x1="10" y1="11" x2="10" y2="17"></line>
<line x1="14" y1="11" x2="14" y2="17"></line>
</svg>
Rimuovi
</button>
</div>
</div>
</div>
`;
}
}
customElements.define('concept-card', ConceptCard);