diff --git a/frontend/src/metabase/common/components/FieldPicker/FieldPicker.styled.tsx b/frontend/src/metabase/common/components/FieldPicker/FieldPicker.styled.tsx
index 20bc006ac3467938498f568ec7f2ec34aa4eb86c..cfe8e1567ca0301e569145e51a4d06b053715d3e 100644
--- a/frontend/src/metabase/common/components/FieldPicker/FieldPicker.styled.tsx
+++ b/frontend/src/metabase/common/components/FieldPicker/FieldPicker.styled.tsx
@@ -1,27 +1,21 @@
 import styled from "@emotion/styled";
 
 import {
-  QueryColumnInfoIcon as _QueryColumnInfoIcon,
+  QueryColumnInfoIcon,
   HoverParent,
 } from "metabase/components/MetadataInfo/ColumnInfoIcon";
-import { color, alpha, darken } from "metabase/lib/colors";
-import { Icon } from "metabase/ui";
+import { color } from "metabase/lib/colors";
 
 export const ItemTitle = styled.div`
   min-width: 10ch;
 `;
 
-export const ItemIcon = styled(Icon)`
+export const ItemIcon = styled(QueryColumnInfoIcon)`
   margin: 0 0.5em;
   margin-left: 0.75em;
   color: ${color("text-dark")};
 `;
 
-export const QueryColumnInfoIcon = styled(_QueryColumnInfoIcon)`
-  color: ${alpha(darken(color("brand"), 0.6), 0.8)};
-  margin-left: auto;
-`;
-
 export const ItemList = styled.ul`
   padding: 0.5em;
 `;
diff --git a/frontend/src/metabase/common/components/FieldPicker/FieldPicker.tsx b/frontend/src/metabase/common/components/FieldPicker/FieldPicker.tsx
index 635c3933ac73858f0cbfbb257aae905c594be4ed..e25cbae732b704fc4da2cc21422e8b5e918a079e 100644
--- a/frontend/src/metabase/common/components/FieldPicker/FieldPicker.tsx
+++ b/frontend/src/metabase/common/components/FieldPicker/FieldPicker.tsx
@@ -1,7 +1,6 @@
 import { useMemo } from "react";
 import { t } from "ttag";
 
-import { getColumnIcon } from "metabase/common/utils/columns";
 import { Checkbox, DelayGroup } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
@@ -11,7 +10,6 @@ import {
   Label,
   ItemTitle,
   ItemIcon,
-  QueryColumnInfoIcon,
 } from "./FieldPicker.styled";
 
 interface FieldPickerProps {
@@ -89,15 +87,14 @@ export const FieldPicker = ({
                 }
                 onChange={event => onToggle(item.column, event.target.checked)}
               />
-
-              <ItemIcon name={getColumnIcon(item.column)} size={18} />
-              <ItemTitle>{item.columnInfo.displayName}</ItemTitle>
-              <QueryColumnInfoIcon
+              <ItemIcon
                 query={query}
                 stageIndex={stageIndex}
                 column={item.column}
-                position="right"
+                position="top-start"
+                size={18}
               />
+              <ItemTitle>{item.columnInfo.displayName}</ItemTitle>
             </Label>
           </li>
         ))}
diff --git a/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/BaseBucketPickerPopover.styled.tsx b/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/BaseBucketPickerPopover.styled.tsx
index 1699feeeef20b2d840af673f341f911d221ab910..020ec0d7e601e1313701012755f9eb19beb65522 100644
--- a/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/BaseBucketPickerPopover.styled.tsx
+++ b/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/BaseBucketPickerPopover.styled.tsx
@@ -20,7 +20,7 @@ export const ChevronDown = styled(Icon)`
   opacity: 0.75;
 `;
 
-export const TriggerButton = styled.button<{ hasDot?: boolean }>`
+export const TriggerButton = styled.button`
   display: flex;
   align-items: center;
   min-width: 0;
@@ -29,8 +29,8 @@ export const TriggerButton = styled.button<{ hasDot?: boolean }>`
   font-weight: 700;
   border-left: 2px solid transparent;
   padding: 0.5rem;
-  border-left: 2px solid
-    ${props => (props.hasDot ? "transparent" : alpha(color("border"), 0.1))};
+  border-left: 2px solid ${alpha(color("border"), 0.1)};
+  margin-left: auto;
 
   cursor: pointer;
 
diff --git a/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/BaseBucketPickerPopover.tsx b/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/BaseBucketPickerPopover.tsx
index b2b181177ed45e3a7acb65479c5e795eb6ec1792..4645fe973b17e69924e1f386670b200e414a9407 100644
--- a/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/BaseBucketPickerPopover.tsx
+++ b/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/BaseBucketPickerPopover.tsx
@@ -11,7 +11,6 @@ import * as Lib from "metabase-lib";
 import {
   Content,
   ChevronDown,
-  Dot,
   MoreButton,
   SelectListItem,
   TriggerButton,
@@ -37,7 +36,6 @@ export interface BaseBucketPickerPopoverProps {
   isEditing: boolean;
   triggerLabel?: string;
   hasArrowIcon?: boolean;
-  hasDot?: boolean;
   hasChevronDown?: boolean;
   color?: ColorName;
   checkBucketIsSelected: (item: BucketListItem) => boolean;
@@ -57,7 +55,6 @@ function _BaseBucketPickerPopover({
   checkBucketIsSelected,
   renderTriggerContent,
   onSelect,
-  hasDot,
   hasChevronDown,
 }: BaseBucketPickerPopoverProps) {
   const [isOpened, setIsOpened] = useState(false);
@@ -101,7 +98,6 @@ function _BaseBucketPickerPopover({
       <Popover.Target>
         <TriggerButton
           aria-label={triggerLabel}
-          hasDot={hasDot}
           // Compat with E2E tests around MLv1-based components
           // Prefer using a11y role selectors
           data-testid="dimension-list-item-binning"
@@ -110,7 +106,6 @@ function _BaseBucketPickerPopover({
             setIsOpened(!isOpened);
           }}
         >
-          {hasDot && <Dot />}
           <Ellipsified>
             {renderTriggerContent(triggerContentBucketDisplayInfo)}
           </Ellipsified>
diff --git a/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/types.ts b/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/types.ts
index 84382458d05ddf312c1eb567042ff43cfe9edbde..68030685dd4c4c7c4f32e34a357b0efc47cf3588 100644
--- a/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/types.ts
+++ b/frontend/src/metabase/common/components/QueryColumnPicker/BucketPickerPopover/types.ts
@@ -9,7 +9,6 @@ type CommonProps = Pick<
   | "isEditing"
   | "color"
   | "hasArrowIcon"
-  | "hasDot"
   | "hasChevronDown"
 >;
 
diff --git a/frontend/src/metabase/common/components/QueryColumnPicker/QueryColumnPicker.styled.tsx b/frontend/src/metabase/common/components/QueryColumnPicker/QueryColumnPicker.styled.tsx
index bafb40dac4e8db9441c6c0bfd96fc4bd5ebca93f..6785e866dd6ab1f9034fb2cb00170d0ce63f5946 100644
--- a/frontend/src/metabase/common/components/QueryColumnPicker/QueryColumnPicker.styled.tsx
+++ b/frontend/src/metabase/common/components/QueryColumnPicker/QueryColumnPicker.styled.tsx
@@ -1,6 +1,5 @@
 import styled from "@emotion/styled";
 
-import { QueryColumnInfoIcon } from "metabase/components/MetadataInfo/ColumnInfoIcon";
 import AccordionList from "metabase/core/components/AccordionList";
 import { color } from "metabase/lib/colors";
 import type { ColorName } from "metabase/lib/colors/types";
@@ -24,7 +23,3 @@ export const ColumnNameContainer = styled.div`
     overflow: hidden;
   }
 `;
-
-export const ColumnInfoIcon = styled(QueryColumnInfoIcon)`
-  align-self: center;
-`;
diff --git a/frontend/src/metabase/common/components/QueryColumnPicker/QueryColumnPicker.tsx b/frontend/src/metabase/common/components/QueryColumnPicker/QueryColumnPicker.tsx
index 337b9618f3ece40c2543d337e05877e131daa715..43330ab05df36ef9864e27311f2bfaf8eb4a7691 100644
--- a/frontend/src/metabase/common/components/QueryColumnPicker/QueryColumnPicker.tsx
+++ b/frontend/src/metabase/common/components/QueryColumnPicker/QueryColumnPicker.tsx
@@ -5,16 +5,17 @@ import {
   getColumnGroupIcon,
   getColumnGroupName,
 } from "metabase/common/utils/column-groups";
-import { getColumnIcon } from "metabase/common/utils/columns";
-import { HoverParent } from "metabase/components/MetadataInfo/ColumnInfoIcon";
+import {
+  QueryColumnInfoIcon,
+  HoverParent,
+} from "metabase/components/MetadataInfo/ColumnInfoIcon";
 import type { ColorName } from "metabase/lib/colors/types";
 import type { IconName } from "metabase/ui";
-import { Box, DelayGroup, Icon } from "metabase/ui";
+import { Box, DelayGroup } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
 import { BucketPickerPopover } from "./BucketPickerPopover";
 import {
-  ColumnInfoIcon,
   ColumnNameContainer,
   StyledAccordionList,
 } from "./QueryColumnPicker.styled";
@@ -154,7 +155,6 @@ export function QueryColumnPicker({
             isEditing={checkIsColumnSelected(item)}
             hasBinning={hasBinning}
             hasTemporalBucketing={hasTemporalBucketing}
-            hasDot={withInfoIcons}
             hasChevronDown={withInfoIcons}
             color={color}
             onSelect={handleSelect}
@@ -174,13 +174,13 @@ export function QueryColumnPicker({
     ],
   );
 
-  const renderItemExtra = useCallback(
+  const renderItemIcon = useCallback(
     (item: ColumnListItem) => (
-      <ColumnInfoIcon
+      <QueryColumnInfoIcon
         query={query}
         stageIndex={stageIndex}
         column={item.column}
-        position="right"
+        position="top-start"
       />
     ),
     [query, stageIndex],
@@ -198,7 +198,6 @@ export function QueryColumnPicker({
         renderItemName={renderItemName}
         renderItemDescription={omitItemDescription}
         renderItemIcon={renderItemIcon}
-        renderItemExtra={renderItemExtra}
         renderItemLabel={renderItemLabel}
         color={color}
         maxHeight={Infinity}
@@ -228,7 +227,3 @@ function renderItemWrapper(content: ReactNode) {
 function omitItemDescription() {
   return null;
 }
-
-function renderItemIcon(item: ColumnListItem) {
-  return <Icon name={getColumnIcon(item.column)} size={18} />;
-}
diff --git a/frontend/src/metabase/components/MetadataInfo/ColumnInfoIcon/ColumnInfoIcon.tsx b/frontend/src/metabase/components/MetadataInfo/ColumnInfoIcon/ColumnInfoIcon.tsx
index 253a4852f9b60ca434ab9927e9728585902c0d97..75e4a9ad6b924ff2e20b4924fffc856b563adaec 100644
--- a/frontend/src/metabase/components/MetadataInfo/ColumnInfoIcon/ColumnInfoIcon.tsx
+++ b/frontend/src/metabase/components/MetadataInfo/ColumnInfoIcon/ColumnInfoIcon.tsx
@@ -1,5 +1,7 @@
 import { t } from "ttag";
 
+import { getColumnIcon } from "metabase/common/utils/columns";
+import type { IconName } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
 import type {
@@ -10,55 +12,76 @@ import {
   QueryColumnInfoPopover,
   TableColumnInfoPopover,
 } from "../ColumnInfoPopover";
-import { PopoverHoverTarget, HoverParent } from "../InfoIcon";
+import {
+  PopoverHoverTarget,
+  PopoverDefaultIcon,
+  HoverParent,
+} from "../InfoIcon";
 export { HoverParent };
 
+type QueryColumnInfoIconProps = QueryColumnInfoPopoverProps & {
+  size?: number;
+  icon?: IconName;
+};
+
 export function QueryColumnInfoIcon({
   className,
   delay,
+  size,
+  icon,
   ...props
-}: QueryColumnInfoPopoverProps) {
+}: QueryColumnInfoIconProps) {
   const { query, stageIndex, column } = props;
   const { description = "" } = query
     ? Lib.displayInfo(query, stageIndex, column)
     : {};
 
-  if (!description) {
-    return null;
-  }
-
   return (
-    <QueryColumnInfoPopover {...props} delay={delay}>
-      <PopoverHoverTarget
-        className={className}
-        name="info_filled"
-        hasDescription={Boolean(description)}
-        aria-label={t`More info`}
-      />
-    </QueryColumnInfoPopover>
+    <>
+      <QueryColumnInfoPopover {...props} delay={delay}>
+        <span aria-label={t`More info`}>
+          <PopoverDefaultIcon
+            className={className}
+            name={icon ?? getColumnIcon(column)}
+            size={size}
+          />
+          <PopoverHoverTarget
+            className={className}
+            name="info_filled"
+            hasDescription={Boolean(description)}
+            size={size}
+          />
+        </span>
+      </QueryColumnInfoPopover>
+    </>
   );
 }
 
 QueryColumnInfoIcon.HoverParent = HoverParent;
 
+type TableColumnInfoIconProps = TableColumnInfoPopoverProps & {
+  icon: IconName;
+  size?: number;
+};
+
 export function TableColumnInfoIcon({
   className,
   delay,
   field,
+  icon,
+  size,
   ...props
-}: TableColumnInfoPopoverProps) {
-  if (!field.description) {
-    return null;
-  }
-
+}: TableColumnInfoIconProps) {
   return (
     <TableColumnInfoPopover {...props} field={field} delay={delay}>
-      <PopoverHoverTarget
-        className={className}
-        name="info_filled"
-        hasDescription={Boolean(field.description)}
-        aria-label={t`More info`}
-      />
+      <span aria-label={t`More info`}>
+        <PopoverDefaultIcon className={className} name={icon} size={size} />
+        <PopoverHoverTarget
+          className={className}
+          name="info_filled"
+          hasDescription={Boolean(field.description)}
+        />
+      </span>
     </TableColumnInfoPopover>
   );
 }
diff --git a/frontend/src/metabase/components/MetadataInfo/InfoIcon/InfoIcon.styled.tsx b/frontend/src/metabase/components/MetadataInfo/InfoIcon/InfoIcon.styled.tsx
index 683eb4a4c04da28c67d86a0fde674806d04255e4..3c5dbaedcc284e17b686a4df463a972612ef7b78 100644
--- a/frontend/src/metabase/components/MetadataInfo/InfoIcon/InfoIcon.styled.tsx
+++ b/frontend/src/metabase/components/MetadataInfo/InfoIcon/InfoIcon.styled.tsx
@@ -3,18 +3,28 @@ import styled from "@emotion/styled";
 import { Icon } from "metabase/ui";
 
 export const PopoverHoverTarget = styled(Icon)<{ hasDescription: boolean }>`
-  padding: 0.7em 0.65em;
-  visibility: hidden;
   flex-shrink: 0;
-  opacity: ${props => (props.hasDescription ? 0.6 : 0.3)};
+  display: none;
 
-  &[aria-expanded="true"] {
-    opacity: 1;
+  [aria-expanded="true"] & {
+    display: block;
+  }
+`;
+
+export const PopoverDefaultIcon = styled(Icon)`
+  display: block;
+
+  [aria-expanded="true"] & {
+    display: none;
   }
 `;
 
 export const HoverParent = styled.div`
   &:hover ${PopoverHoverTarget} {
-    visibility: visible;
+    display: block;
+  }
+
+  &:hover ${PopoverDefaultIcon} {
+    display: none;
   }
 `;
diff --git a/frontend/src/metabase/components/MetadataInfo/TableInfoIcon/TableInfoIcon.tsx b/frontend/src/metabase/components/MetadataInfo/TableInfoIcon/TableInfoIcon.tsx
index 28a1138efb17abe1016d476009d980b74e9fc1b8..c07049ccc8b00f6770b4fcce1dd57298b2bfc453 100644
--- a/frontend/src/metabase/components/MetadataInfo/TableInfoIcon/TableInfoIcon.tsx
+++ b/frontend/src/metabase/components/MetadataInfo/TableInfoIcon/TableInfoIcon.tsx
@@ -1,28 +1,41 @@
 import { t } from "ttag";
 
-import { PopoverHoverTarget, HoverParent } from "../InfoIcon";
+import type { IconName } from "metabase/ui";
+
+import {
+  PopoverHoverTarget,
+  HoverParent,
+  PopoverDefaultIcon,
+} from "../InfoIcon";
 import type { TableInfoPopoverProps } from "../TableInfoPopover";
 import { TableInfoPopover } from "../TableInfoPopover";
 export { HoverParent };
 
 type TableInfoIconProps = TableInfoPopoverProps & {
   className?: string;
+  icon?: IconName;
+  size?: number;
 };
 
 export function TableInfoIcon({
   className,
   delay,
   table,
+  size,
+  icon = "table",
   ...props
 }: TableInfoIconProps) {
   return (
     <TableInfoPopover {...props} table={table} delay={delay}>
-      <PopoverHoverTarget
-        className={className}
-        name="info_filled"
-        hasDescription={Boolean(table.description)}
-        aria-label={t`More info`}
-      />
+      <span aria-label={t`More info`}>
+        <PopoverDefaultIcon name={icon} className={className} size={size} />
+        <PopoverHoverTarget
+          className={className}
+          name="info_filled"
+          hasDescription={Boolean(table.description)}
+          size={size}
+        />
+      </span>
     </TableInfoPopover>
   );
 }
diff --git a/frontend/src/metabase/query_builder/components/DataSelector/DataSelectorFieldPicker/DataSelectorFieldPicker.tsx b/frontend/src/metabase/query_builder/components/DataSelector/DataSelectorFieldPicker/DataSelectorFieldPicker.tsx
index 46e4067228cf0f57a24e904d39b2b7c0f106aa79..27238dd47343d83d5e115613000504be92e35c79 100644
--- a/frontend/src/metabase/query_builder/components/DataSelector/DataSelectorFieldPicker/DataSelectorFieldPicker.tsx
+++ b/frontend/src/metabase/query_builder/components/DataSelector/DataSelectorFieldPicker/DataSelectorFieldPicker.tsx
@@ -72,9 +72,11 @@ const DataSelectorFieldPicker = ({
 
   const renderItemIcon = (item: FieldWithName) =>
     item.field && (
-      <Icon
-        name={item.field.dimension().icon() as unknown as IconName}
+      <TableColumnInfoIcon
+        field={item.field}
+        position="top-end"
         size={18}
+        icon={item.field.dimension().icon() as unknown as IconName}
       />
     );
 
@@ -95,7 +97,6 @@ const DataSelectorFieldPicker = ({
           itemIsClickable={(item: FieldWithName) => item.field}
           renderItemWrapper={renderItemWrapper}
           renderItemIcon={renderItemIcon}
-          renderItemExtra={renderItemExtra}
         />
       </DelayGroup>
     </Container>
@@ -106,10 +107,6 @@ function renderItemWrapper(content: ReactNode) {
   return <HoverParent>{content}</HoverParent>;
 }
 
-function renderItemExtra(item: FieldWithName) {
-  return <TableColumnInfoIcon field={item.field} position="top-end" />;
-}
-
 const Header = ({ onBack, selectedTable }: HeaderProps) => (
   <HeaderContainer onClick={onBack}>
     <Icon name="chevronleft" size={18} />
diff --git a/frontend/src/metabase/query_builder/components/DataSelector/DataSelectorTablePicker/DataSelectorTablePicker.tsx b/frontend/src/metabase/query_builder/components/DataSelector/DataSelectorTablePicker/DataSelectorTablePicker.tsx
index cd991499178b0ca446c2304fa97839bfa40fe882..20964f106f5e5744d35291586dd914870d2a2806 100644
--- a/frontend/src/metabase/query_builder/components/DataSelector/DataSelectorTablePicker/DataSelectorTablePicker.tsx
+++ b/frontend/src/metabase/query_builder/components/DataSelector/DataSelectorTablePicker/DataSelectorTablePicker.tsx
@@ -95,10 +95,7 @@ const DataSelectorTablePicker = ({
       table && selectedTable ? table.id === selectedTable.id : false;
 
     const renderItemIcon = ({ table }: { table: Table }) =>
-      table ? <Icon name="table" /> : null;
-
-    const renderItemExtra = ({ table }: { table: Table }) =>
-      table && <TableInfoIcon table={table} position="right" />;
+      table ? <TableInfoIcon table={table} position="top-start" /> : null;
 
     const renderItemWrapper = (content: ReactNode) => (
       <HoverParent>{content}</HoverParent>
@@ -127,7 +124,6 @@ const DataSelectorTablePicker = ({
             showSpinner={showSpinner}
             itemIsSelected={checkIfItemIsSelected}
             itemIsClickable={checkIfItemIsClickable}
-            renderItemExtra={renderItemExtra}
             renderItemIcon={renderItemIcon}
             renderItemWrapper={renderItemWrapper}
             showItemArrows={hasNextStep}
diff --git a/frontend/src/metabase/query_builder/components/dataref/FieldList.tsx b/frontend/src/metabase/query_builder/components/dataref/FieldList.tsx
index 9eff60304237261ca3f0e5601e2ef5445754391c..f203dac220f34fe4f2364a03ec31f55217d96769 100644
--- a/frontend/src/metabase/query_builder/components/dataref/FieldList.tsx
+++ b/frontend/src/metabase/query_builder/components/dataref/FieldList.tsx
@@ -1,4 +1,4 @@
-import { t, ngettext, msgid } from "ttag";
+import { ngettext, msgid } from "ttag";
 
 import type { IconName } from "metabase/ui";
 import { DelayGroup } from "metabase/ui";
@@ -8,7 +8,6 @@ import {
   NodeListItem,
   NodeListItemLink,
   NodeListItemName,
-  NodeListItemIcon,
   NodeListTitle,
   NodeListContainer,
   NodeListIcon,
@@ -38,13 +37,11 @@ const FieldList = ({ fields, onFieldClick }: FieldListProps) => (
         // field.icon() cannot be annotated to return IconName
         // because metabase-lib cannot import from metabase.
         const iconName = field.icon() as IconName;
-        const tooltip = iconName === "unknown" ? t`Unknown type` : null;
         return (
           <NodeListItem as="li" key={field.getUniqueId()}>
             <NodeListItemLink onClick={() => onFieldClick(field)}>
-              <NodeListItemIcon name={iconName} tooltip={tooltip} />
+              <NodeListInfoIcon field={field} position="left" icon={iconName} />
               <NodeListItemName>{field.name}</NodeListItemName>
-              <NodeListInfoIcon field={field} position="top-end" />
             </NodeListItemLink>
           </NodeListItem>
         );
diff --git a/frontend/src/metabase/query_builder/components/expressions/ExpressionEditorSuggestions/ExpressionEditorSuggestions.styled.tsx b/frontend/src/metabase/query_builder/components/expressions/ExpressionEditorSuggestions/ExpressionEditorSuggestions.styled.tsx
index 9c46c48bf359f77e7bc3fbea6e87d8bb3816005c..6676104f5abaf392ec91497c59c3119b93d8538b 100644
--- a/frontend/src/metabase/query_builder/components/expressions/ExpressionEditorSuggestions/ExpressionEditorSuggestions.styled.tsx
+++ b/frontend/src/metabase/query_builder/components/expressions/ExpressionEditorSuggestions/ExpressionEditorSuggestions.styled.tsx
@@ -1,7 +1,6 @@
 import { css } from "@emotion/react";
 import styled from "@emotion/styled";
 
-import { QueryColumnInfoIcon as BaseQueryColumnInfoIcon } from "metabase/components/MetadataInfo/ColumnInfoIcon";
 import {
   HoverParent,
   PopoverHoverTarget as BasePopoverHoverTarget,
@@ -71,12 +70,6 @@ export const SuggestionTitle = styled.span`
   margin-right: 1.5em;
 `;
 
-export const QueryColumnInfoIcon = styled(BaseQueryColumnInfoIcon)`
-  padding: 0;
-  margin-left: auto;
-  padding: 0.3125rem 0;
-`;
-
 export const PopoverHoverTarget = styled(BasePopoverHoverTarget)`
   padding: 0;
   margin-left: auto;
diff --git a/frontend/src/metabase/query_builder/components/expressions/ExpressionEditorSuggestions/ExpressionEditorSuggestions.tsx b/frontend/src/metabase/query_builder/components/expressions/ExpressionEditorSuggestions/ExpressionEditorSuggestions.tsx
index 72549de061b72bf3b26726a688196dcf9abe1230..2947880a6c5dfb408d98fc9911095cfaf26aa58c 100644
--- a/frontend/src/metabase/query_builder/components/expressions/ExpressionEditorSuggestions/ExpressionEditorSuggestions.tsx
+++ b/frontend/src/metabase/query_builder/components/expressions/ExpressionEditorSuggestions/ExpressionEditorSuggestions.tsx
@@ -9,6 +9,7 @@ import {
 import { t } from "ttag";
 import _ from "underscore";
 
+import { QueryColumnInfoIcon } from "metabase/components/MetadataInfo/ColumnInfoIcon";
 import { HoverParent } from "metabase/components/MetadataInfo/InfoIcon";
 import { Popover as InfoPopover } from "metabase/components/MetadataInfo/Popover";
 import CS from "metabase/css/core/index.css";
@@ -42,7 +43,6 @@ import {
   SuggestionMatch,
   SuggestionTitle,
   GroupTitle,
-  QueryColumnInfoIcon,
   PopoverHoverTarget,
 } from "./ExpressionEditorSuggestions.styled";
 
@@ -247,13 +247,22 @@ function ExpressionEditorSuggestionsListItem({
         className={cx(CS.hoverParent, CS.hoverInherit)}
         data-testid="expression-suggestions-list-item"
       >
-        {icon && (
+        {icon && (helpText || !suggestion.column) && (
           <Icon
             name={icon as IconName}
             color={isHighlighted ? highlighted : normal}
             className={CS.mr1}
           />
         )}
+        {!helpText && suggestion.column && (
+          <QueryColumnInfoIcon
+            query={query}
+            stageIndex={stageIndex}
+            column={suggestion.column}
+            position="top-start"
+            className={CS.mr1}
+          />
+        )}
         <SuggestionTitle>
           {suggestion.name.slice(0, start)}
           <SuggestionMatch>{suggestion.name.slice(start, end)}</SuggestionMatch>
@@ -272,14 +281,6 @@ function ExpressionEditorSuggestionsListItem({
             />
           </InfoPopover>
         )}
-        {!helpText && suggestion.column && (
-          <QueryColumnInfoIcon
-            query={query}
-            stageIndex={stageIndex}
-            column={suggestion.column}
-            position="right"
-          />
-        )}
       </ExpressionListItem>
     </HoverParent>
   );
diff --git a/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionDataSource/QuestionDataSource.jsx b/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionDataSource/QuestionDataSource.jsx
index 69158b2e785c6481172e6b68b8bf15e279187134..e39513e68a77830dd16588da66e5503ac727ba18 100644
--- a/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionDataSource/QuestionDataSource.jsx
+++ b/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionDataSource/QuestionDataSource.jsx
@@ -2,6 +2,7 @@ import PropTypes from "prop-types";
 import { isValidElement } from "react";
 import { t } from "ttag";
 
+import { TableInfoIcon } from "metabase/components/MetadataInfo/TableInfoIcon/TableInfoIcon";
 import Tooltip from "metabase/core/components/Tooltip";
 import Collections from "metabase/entities/collections";
 import Questions from "metabase/entities/questions";
@@ -18,7 +19,7 @@ import * as ML_Urls from "metabase-lib/v1/urls";
 
 import { HeadBreadcrumbs } from "../HeaderBreadcrumbs";
 
-import { TablesDivider, TableInfoIcon } from "./QuestionDataSource.styled";
+import { TablesDivider, IconWrapper } from "./QuestionDataSource.styled";
 
 QuestionDataSource.propTypes = {
   question: PropTypes.object,
@@ -260,7 +261,16 @@ function QuestionTableBadges({ tables, subHead, hasLink, isLast }) {
     >
       <span>
         {table.displayName()}
-        {!subHead && <TableInfoIcon table={table} />}
+        {!subHead && (
+          <IconWrapper>
+            <TableInfoIcon
+              table={table}
+              icon="info_filled"
+              size={12}
+              position="bottom"
+            />
+          </IconWrapper>
+        )}
       </span>
     </HeadBreadcrumbs.Badge>
   ));
diff --git a/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionDataSource/QuestionDataSource.styled.tsx b/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionDataSource/QuestionDataSource.styled.tsx
index df6ae898043b263f2eb8469e65e2c4040e8242d7..24752dd35237333d2677452c1b5a5403abb6d6ac 100644
--- a/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionDataSource/QuestionDataSource.styled.tsx
+++ b/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionDataSource/QuestionDataSource.styled.tsx
@@ -11,12 +11,10 @@ export const TablesDivider = styled.span`
   user-select: none;
 `;
 
-export const TableInfoIcon = styled(_TableInfoIcon)`
+export const IconWrapper = styled.span`
   color: ${color("text-light")};
-  visibility: visible;
-  font-size: min(1rem, 1em);
-  padding: 0;
-  margin-left: 0.5em;
-  position: relative;
-  top: 1px;
+  display: inline-block;
+  font-size: 1rem;
+  margin-left: 0.5rem;
+  vertical-align: middle;
 `;
diff --git a/frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnListItem/BreakoutColumnListItem.styled.tsx b/frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnListItem/BreakoutColumnListItem.styled.tsx
index 02806d81950ddfce90ef3e90cf239dd5d686ec4e..e56405725677979f76ea3b8157d2cbf80368cfed 100644
--- a/frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnListItem/BreakoutColumnListItem.styled.tsx
+++ b/frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnListItem/BreakoutColumnListItem.styled.tsx
@@ -2,10 +2,9 @@ import { css } from "@emotion/react";
 import styled from "@emotion/styled";
 
 import { BucketPickerPopover } from "metabase/common/components/QueryColumnPicker/BucketPickerPopover";
-import { QueryColumnInfoIcon as BaseQueryColumnInfoIcon } from "metabase/components/MetadataInfo/ColumnInfoIcon";
+import { QueryColumnInfoIcon } from "metabase/components/MetadataInfo/ColumnInfoIcon";
 import Button from "metabase/core/components/Button";
 import { color, alpha } from "metabase/lib/colors";
-import { Icon } from "metabase/ui";
 
 export const Content = styled.div`
   display: flex;
@@ -55,7 +54,7 @@ AddButton.defaultProps = {
   borderless: true,
 };
 
-export const ColumnTypeIcon = styled(Icon)`
+export const ColumnTypeIcon = styled(QueryColumnInfoIcon)`
   color: ${color("text-medium")};
 `;
 
@@ -66,14 +65,9 @@ export const Title = styled.div`
   font-weight: 700;
 `;
 
-export const QueryColumnInfoIcon = styled(BaseQueryColumnInfoIcon)`
-  margin-left: auto;
-`;
-
 const selectedStyle = css`
   ${Content},
-  ${ColumnTypeIcon},
-  ${QueryColumnInfoIcon} {
+  ${ColumnTypeIcon} {
     background-color: ${color("summarize")};
     color: ${color("white")};
   }
@@ -81,8 +75,6 @@ const selectedStyle = css`
   ${BucketPickerPopover.TriggerButton} {
     opacity: 1;
     color: ${alpha("white", 0.65)};
-    padding-left: 0;
-    border-left: 0;
   }
 
   ${BucketPickerPopover.TriggerButton}:hover {
@@ -95,11 +87,9 @@ const unselectedStyle = css`
   ${BucketPickerPopover.TriggerButton} {
     opacity: 0;
     color: ${color("text-light")};
-    padding-left: 0;
-    border-left: 0;
   }
 
-  ${QueryColumnInfoIcon} {
+  ${ColumnTypeIcon} {
     color: ${color("text-light")};
   }
 
diff --git a/frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnListItem/BreakoutColumnListItem.tsx b/frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnListItem/BreakoutColumnListItem.tsx
index 0400b8aef8b4e79b2748222958afc8279002402e..4346360b6e28c0372e1f56bebbf812f5a1b3f295 100644
--- a/frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnListItem/BreakoutColumnListItem.tsx
+++ b/frontend/src/metabase/query_builder/components/view/sidebars/SummarizeSidebar/BreakoutColumnList/BreakoutColumnListItem/BreakoutColumnListItem.tsx
@@ -3,7 +3,6 @@ import { useCallback } from "react";
 import { t } from "ttag";
 
 import { BucketPickerPopover } from "metabase/common/components/QueryColumnPicker/BucketPickerPopover";
-import { getColumnIcon } from "metabase/common/utils/columns";
 import { HoverParent } from "metabase/components/MetadataInfo/ColumnInfoIcon";
 import Tooltip from "metabase/core/components/Tooltip";
 import * as Lib from "metabase-lib";
@@ -16,7 +15,6 @@ import {
   TitleContainer,
   RemoveButton,
   Root,
-  QueryColumnInfoIcon,
 } from "./BreakoutColumnListItem.styled";
 
 const STAGE_INDEX = -1;
@@ -72,7 +70,13 @@ export function BreakoutColumnListItem({
     >
       <Content onClick={handleListItemClick}>
         <TitleContainer>
-          <ColumnTypeIcon name={getColumnIcon(item.column)} size={18} />
+          <ColumnTypeIcon
+            query={query}
+            stageIndex={STAGE_INDEX}
+            column={item.column}
+            position="left"
+            size={18}
+          />
           <Title data-testid="dimension-list-item-name">{displayName}</Title>
           <BucketPickerPopover
             query={query}
@@ -80,7 +84,6 @@ export function BreakoutColumnListItem({
             column={item.column}
             color="summarize"
             isEditing={isSelected}
-            hasDot
             hasChevronDown
             hasBinning
             hasTemporalBucketing
@@ -88,12 +91,6 @@ export function BreakoutColumnListItem({
               breakout ? onUpdateColumn(column) : onAddColumn(column)
             }
           />
-          <QueryColumnInfoIcon
-            query={query}
-            stageIndex={STAGE_INDEX}
-            column={item.column}
-            position="top-end"
-          />
         </TitleContainer>
         {isSelected && (
           <RemoveButton
diff --git a/frontend/src/metabase/querying/components/FilterModal/FilterTitle/FilterTitle.styled.tsx b/frontend/src/metabase/querying/components/FilterModal/FilterTitle/FilterTitle.styled.tsx
deleted file mode 100644
index ff538bc215d21881cc97553a2278a216484a44f1..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/components/FilterModal/FilterTitle/FilterTitle.styled.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import styled from "@emotion/styled";
-
-export const InfoIconWrapper = styled.div`
-  position: relative;
-  left: 0.25rem;
-  width: 2rem;
-  display: flex;
-  align-items: center;
-`;
diff --git a/frontend/src/metabase/querying/components/FilterModal/FilterTitle/FilterTitle.tsx b/frontend/src/metabase/querying/components/FilterModal/FilterTitle/FilterTitle.tsx
index dc3ba3bdfd68033a0cff556bfe982d4f8d50fcbf..5f73d2371d506e17f0bbfe163c148e341340ca63 100644
--- a/frontend/src/metabase/querying/components/FilterModal/FilterTitle/FilterTitle.tsx
+++ b/frontend/src/metabase/querying/components/FilterModal/FilterTitle/FilterTitle.tsx
@@ -5,13 +5,11 @@ import {
   QueryColumnInfoIcon,
 } from "metabase/components/MetadataInfo/ColumnInfoIcon";
 import type { IconName } from "metabase/ui";
-import { Flex, Icon } from "metabase/ui";
+import { Flex } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 
 import { FilterColumnName } from "../FilterColumnName";
 
-import { InfoIconWrapper } from "./FilterTitle.styled";
-
 type FilterTitleProps = {
   children?: ReactNode;
   column: Lib.ColumnMetadata;
@@ -32,16 +30,14 @@ export function FilterTitle({
   stageIndex,
 }: FilterTitleProps) {
   return (
-    <Flex h="100%" align="center" gap="sm">
-      <InfoIconWrapper>
-        <QueryColumnInfoIcon
-          query={query}
-          stageIndex={stageIndex}
-          column={column}
-          position="left"
-        />
-      </InfoIconWrapper>
-      <Icon name={columnIcon} />
+    <Flex h="100%" align="center" gap="sm" pl="md">
+      <QueryColumnInfoIcon
+        query={query}
+        stageIndex={stageIndex}
+        column={column}
+        icon={columnIcon}
+        position="left"
+      />
       <FilterColumnName
         query={query}
         stageIndex={stageIndex}
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.tsx b/frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.tsx
index 27d67bb64d40d56e2ebd0b44a63495d659d42b9d..bbad00042c992454263dc131a9b04206611c2ceb 100644
--- a/frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.tsx
+++ b/frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.tsx
@@ -5,7 +5,6 @@ import {
   getColumnGroupIcon,
   getColumnGroupName,
 } from "metabase/common/utils/column-groups";
-import { getColumnIcon } from "metabase/common/utils/columns";
 import {
   QueryColumnInfoIcon,
   HoverParent,
@@ -119,7 +118,6 @@ export function FilterColumnPicker({
         renderItemName={renderItemName}
         renderItemDescription={omitItemDescription}
         renderItemIcon={renderItemIcon}
-        renderItemExtra={renderItemExtra}
         // disable scrollbars inside the list
         style={{ overflow: "visible" }}
         maxHeight={Infinity}
@@ -148,26 +146,19 @@ function renderItemIcon(item: ColumnListItem | SegmentListItem) {
   }
 
   if (item.column) {
-    return <Icon name={getColumnIcon(item.column)} size={18} />;
+    const { query, stageIndex, column } = item;
+    return (
+      <QueryColumnInfoIcon
+        query={query}
+        stageIndex={stageIndex}
+        column={column}
+        position="top-start"
+        size={18}
+      />
+    );
   }
 }
 
 function renderItemWrapper(content: React.ReactNode) {
   return <HoverParent>{content}</HoverParent>;
 }
-
-function renderItemExtra(item: ColumnListItem | SegmentListItem) {
-  if (isSegmentListItem(item)) {
-    return null;
-  }
-
-  const { query, stageIndex, column } = item;
-  return (
-    <QueryColumnInfoIcon
-      query={query}
-      stageIndex={stageIndex}
-      column={column}
-      position="right"
-    />
-  );
-}