@@ -40,6 +40,7 @@ z-index: 10;
4040 }
4141 }
4242 .project__block__inner {
43+ position: relative;
4344 display: flex;
4445 flex-direction: column;
4546 background: ${ props => props . theme . grey212121ToWhite } ;
@@ -121,7 +122,18 @@ z-index: 10;
121122 transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out 0.3s;
122123 /* transition: transform 1s ease-in-out 0.2s; */
123124 }
124- }` ;
125+ }
126+
127+ .docs-icon-wrapper {
128+ position: absolute;
129+ top: 2.5rem;
130+ right: 0.8rem;
131+ z-index: 20;
132+ display: flex;
133+ justify-content: flex-end;
134+ width: auto;
135+ }
136+ ` ;
125137
126138const KanvasisualizerFeatures = ( ) => {
127139 const [ isHovered , setisHovered ] = useState ( false ) ;
@@ -144,35 +156,47 @@ const KanvasisualizerFeatures = () => {
144156 < Row >
145157 < div className = "project__block__wrap" >
146158 < Col $sm = { 12 } $md = { 6 } $lg = { 4 } >
159+ < a href = "https://docs.layer5.io/kanvas/getting-started/import-designs/" style = { { textDecoration : 'none' , color : 'inherit' , display : 'block' } } >
147160 < div className = { ( isHovered && hoveredFeature != "Feature1" ) ? "project__block__inner darken" : "project__block__inner" } onMouseOver = { ( ) => handleMouseOver ( 1 ) } onMouseOut = { handleMouseOut } >
161+ < div className = "docs-icon-wrapper" >
162+ < DocsIcon style = { { color : '#00D3A9' } } className = "docs" />
163+ </ div >
148164 < div className = "feature-image" >
149165 < img src = { ApplicationImportBoxes } alt = "Application Import" style = { { position : "absolute" } } />
150166 < img src = { ApplicationImportArrows } alt = "" className = { hoveredFeature == "Feature1" ? "secondary-image-visible" : "secondary-image" } />
151167 </ div >
152168 < h3 > Application Import</ h3 >
153169 < p > Import your existing Kubernetes, Helm, or Docker Compose applications.</ p >
154170 </ div >
171+ </ a >
155172 </ Col >
156173 < Col $sm = { 12 } $md = { 6 } $lg = { 4 } >
174+ < a href = "https://docs.layer5.io/kanvas/operator/resource-details/" style = { { textDecoration : 'none' , color : 'inherit' , display : 'block' } } >
157175 < div className = { ( isHovered && hoveredFeature != "Feature2" ) ? "project__block__inner darken" : "project__block__inner" } onMouseOver = { ( ) => handleMouseOver ( 2 ) } onMouseOut = { handleMouseOut } >
176+ < div className = "docs-icon-wrapper" >
177+ < DocsIcon style = { { color : '#00D3A9' } } className = "docs" />
178+ </ div >
158179 < div className = "feature-image" >
159180 < img src = { PerformanceMetrics } alt = "Performance Metrics" style = { { position : "absolute" } } />
160181 < img src = { PerformanceMetricsGraph } alt = "" className = { hoveredFeature == "Feature2" ? "secondary-image-visible" : "secondary-image" } />
161182 </ div >
162183 < h3 > Real-time performance metrics</ h3 >
163184 < p > Monitor your clusters performing in action, set alerts and work with object-specific metrics.</ p >
164185 </ div >
186+ </ a >
165187 </ Col >
166188 < Col $sm = { 12 } $md = { 6 } $lg = { 4 } >
167- < a href = "https://docs.layer5.io/kanvas/operator/" style = { { textDecoration : 'none' , color : 'inherit' , display : 'block' } } >
189+ < a href = "https://docs.layer5.io/kanvas/operator/#understanding-interactive-terminal " style = { { textDecoration : 'none' , color : 'inherit' , display : 'block' } } >
168190 < div className = { ( isHovered && hoveredFeature != "Feature3" ) ? "project__block__inner darken" : "project__block__inner" } onMouseOver = { ( ) => handleMouseOver ( 3 ) } onMouseOut = { handleMouseOut } >
191+ < div className = "docs-icon-wrapper" >
192+ < DocsIcon style = { { color : '#00D3A9' } } className = "docs" />
193+ </ div >
169194 < div className = "feature-image" >
170195 < img src = { InteractiveTerminal } alt = "Interactive Terminal" style = { { position : "absolute" , width : "80%" , zIndex : "0" } } />
171196 < img src = { InteractiveTerminalCode } alt = "" className = { hoveredFeature == "Feature3" ? "secondary-image-visible" : "secondary-image" } style = { { position : "relative" , width : "80%" , zIndex : "10" } } />
172197 </ div >
173198 < h3 > Interactive Terminal</ h3 >
174199 < p > Establish sessions with one or more pods at a time.</ p >
175- < DocsIcon style = { { position : 'absolute' , top : '16px' , right : '16px' , color : '#00D3A9' } } className = "docs" />
176200 </ div >
177201 </ a >
178202 </ Col >
@@ -199,14 +223,19 @@ const KanvasisualizerFeatures = () => {
199223 </ div >
200224 </ Col >
201225 < Col $sm = { 12 } $md = { 6 } $lg = { 4 } >
226+ < a href = "https://docs.layer5.io/kanvas/operator/#understanding-log-streamer" style = { { textDecoration : 'none' , color : 'inherit' , display : 'block' } } >
202227 < div className = { ( isHovered && hoveredFeature != "Feature6" ) ? "project__block__inner darken" : "project__block__inner" } onMouseOver = { ( ) => handleMouseOver ( 6 ) } onMouseOut = { handleMouseOut } >
228+ < div className = "docs-icon-wrapper" >
229+ < DocsIcon style = { { color : '#00D3A9' } } className = "docs" />
230+ </ div >
203231 < div className = "feature-image" >
204232 < img src = { LogStream } alt = "Log Stream" style = { { position : "absolute" } } />
205233 < img src = { LogStreamSearch } alt = "" className = { hoveredFeature == "Feature6" ? "secondary-image-visible" : "secondary-image" } />
206234 </ div >
207235 < h3 > Log Stream</ h3 >
208236 < p > Stream and filter through the logs using keywords for multiple Kubernetes Pods simultaneously.</ p >
209237 </ div >
238+ </ a >
210239 </ Col >
211240 </ div >
212241 </ Row >
0 commit comments