@use "@/assets/css/mixins" as mixins; @use '@/assets/css/constants' as constants; [data-component=tools] { .root-content { padding: 30px; gap: 20px; flex-wrap: wrap; justify-content: flex-start; > .card-box { width: 180px; height: 290px; flex: 0 0 auto; .common-card { width: 100%; height: 100%; text-align: center; align-items: center; > * { display: block; flex: 0 0 auto; } .version-select { position: absolute; top: 10px; left: 10px; width: 8em; } .upgrade-bt { position: absolute; top: 10px; right: 10px; font-size: 1.8em; } .icon { display: flex; padding-top: 50px; padding-bottom: 20px; color: constants.$production-color; font-size: constants.$SIZE_ICON_XL; justify-content: center; img { width: constants.$SIZE_ICON_XL; } } .tool-name { font-weight: bolder; font-size: 1.6em; } } } & > :first-child { cursor: pointer; .info { padding-top: 50px; } } & > :not(:first-child) { .info { transform: translateY(40px); transition: all 0.1s ease; } .operation { display: flex; flex: 1; justify-content: center; padding-bottom: 20px; gap: 4px; width: 70%; flex-direction: column; align-items: center; visibility: hidden; opacity: 0; > *, .edit > * { width: 100%; } .edit { > * { > :first-child { flex: 1; } } } } } & > :not(:first-child):hover { .info { transform: translateY(-10px); transition: all 0.2s ease; } .operation { visibility: visible; opacity: 1; transition: all 0.4s ease; } } } }